Data Access code to edit
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity.Migrations;
using BusinessModel.Models.SISPROD;
namespace BusinessModel.DataAccess
{
public class EtapasDA
{
public bool EditarFechasSubetapas(relEvaluacionEtapaSubetapa relEvaEtaSube)
{
try
{
using (sisprodEntities sisprodEntities = new sisprodEntities())
{
var con = (from spd in sisprodEntities.relEvaluacionEtapaSubetapa
where spd.subId == relEvaEtaSube.subId
&& spd.etaId == relEvaEtaSube.etaId
&& spd.evaId == relEvaEtaSube.evaId
select spd).First();
con.subFechainicio = relEvaEtaSube.subFechainicio;
con.subFechatermino = relEvaEtaSube.subFechatermino;
sisprodEntities.SaveChanges();
}
return true;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return false;
}
}
}
}
Code of business logic
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BusinessModel.Models.SISPROD;
using BusinessModel.DataAccess;
namespace BusinessModel.Business
{
public class EtapasBL
{
EtapasDA etaDa = new EtapasDA();
public bool EditarFechasSubetapas(relEvaluacionEtapaSubetapa relEvaEtaSube)
{
return etaDa.EditarFechasSubetapas(relEvaEtaSube);
}
}
}
Another kind of business logic
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BusinessModel.Models.SISPROD;
using BusinessModel.DataAccess;
namespace BusinessModel.Business
{
public class EtapasBL
{
EtapasDA etaDa = new EtapasDA();
public bool EditarFechasSubetapas(relEvaluacionEtapaSubetapa relEvaEtaSube)
{
return etaDa.EditarFechasSubetapas(relEvaEtaSube);
}
}
}
Controller code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BusinessModel.Models.SISPROD;
using BusinessModel.Business;
using BusinessModel.Models;
namespace MOVILIDAD_WEB.Controllers
{
public class EtapasController : Controller
{
// GET: Etapas
public PartialViewResult FormFecha(relEvaluacionEtapaSubetapa relEvaEtaSub) {
return PartialView(relEvaEtaSub);
}
public ActionResult Index()
{
spdEvaluacionEtapaML oSpdEvaluacionEtapaML = new spdEvaluacionEtapaML();
spdEvaluacion oSpdEvaluacion = new spdEvaluacion();
oSpdEvaluacion = (Session["oSpdEvaluacion"] != null) ? (spdEvaluacion)Session["oSpdEvaluacion"] : oSpdEvaluacion;
oSpdEvaluacionEtapaML.oSpdEvaluacion = oSpdEvaluacion;
return View(oSpdEvaluacionEtapaML);
}
public JsonResult EditarFechaSubetapa(spdEvaluacionEtapaML oSpdEvaluacionEtapaML)
{
//int evaId, int etaId, int subEtaId, String dateSubEtaFechaInicio, String dateSubEtaFechaTermino
MensajeResultML obj = new MensajeResultML();
List<MensajeResultML> list = new List<MensajeResultML>();
EtapasBL etapas = new EtapasBL();
if (etapas.EditarFechasSubetapas(oSpdEvaluacionEtapaML.oEvaluacionEtapaSubetapa))
{
obj.idTipoMensaje = (int)MensajeResultML.TipoMensaje.success;
obj.Mensaje = "Se han actualizado correctamente las fechas";
}
else
{
obj.idTipoMensaje = (int)MensajeResultML.TipoMensaje.error;
obj.Mensaje = "No se actualizaron las fecha";
}
list.Add(obj);
return Json(list);
}
}
}
View
@model BusinessModel.Models.spdEvaluacionEtapaML
@using BusinessModel.Models.SISPROD
<head>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
<link rel="stylesheet" href="~/Content/SISPROD/cssEtapas.css" />
<script type="text/javascript">
function asignarFechas(fechaInicio, fechaTermino, evalId, etaId, subEtaId) {
$q("#dateSubEtaFechaInicio").val(fechaInicio);
$q("#dateSubEtaFechaTermino").val(fechaTermino);
$q("#evaId").val(evalId);
$q("#etaId").val(etaId);
$q("#subEtaId").val(subEtaId);
//alert($q("#dateSubEtaFechaInicio").val() + '\n' +
// $q("#dateSubEtaFechaTermino").val() + '\n' +
// $q("#evaId").val() + '\n' +
// $q("#etaId").val() + '\n' +
// $q("#subEtaId").val());
}
</script>
</head>
<body>
<div class="container-fluid">
<div class="row">
<h1>Listado de etapas</h1>
</div>
<div class="row">
@{
foreach (relEvaluacionEtapa etapa in Model.oSpdEvaluacion.relEvaluacionEtapa)
{
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3" style="padding:0;">
<div class="" style="margin: 5%;">
<div style="background-color: skyblue; width: 100%; height: 10%; text-align: center;">
<label style="font-size: 25px; color: white;">@etapa.etaOrden</label>
</div>
<div class="card-text" style="background-color: whitesmoke; width: 100%; height: 55%; padding: 5%; text-align: center; font-size:15px;">
<img class="card-img-top d-block mx-auto" src="~/Images/iconos/activo.png" alt="Card image cap" style="width:20%; height:20%; margin-bottom:5%;">
<label style="margin-bottom:5%;"> @etapa.etaNombre</label>
<br />
@foreach (relEvaluacionEtapaSubetapa subEtapa in Model.oSpdEvaluacion.relEvaluacionEtapaSubetapa)
{
if (subEtapa.etaId == etapa.etaId)
{
<a href="#" class="btn btn-outline-info" style="font-size:12px;">
@subEtapa.subNombre
</a>
<br />
<a style="font-family:Arial, Helvetica, sans-serif; font-size:12px;">@subEtapa.subFechainicio al @subEtapa.subFechatermino</a>
<br />
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal"
style="margin-bottom:10%; font-size:12px;
background-image:url(../../Content/images/icons-png/edit-white.png);
background-repeat: no-repeat;" onclick="javascript:asignarFechas(
'@String.Format("{0:yyyy-MM-dd}", subEtapa.subFechainicio)',
'@String.Format("{0:yyyy-MM-dd}", subEtapa.subFechatermino)',
'@subEtapa.evaId',
'@subEtapa.etaId',
'@subEtapa.subId')">
</button>
<br />
@*@Html.ActionLink("Editar", "FormFecha","Etapas", subEtapa, new { @class = "colorBlanco btnAnterior" })*@
<br />
}
}
</div>
</div>
</div>
}
}
</div>
@* Modal para edicion de fechas *@
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
@*@Html.Partial("FormFecha",null);*@
@{
using (Ajax.BeginForm("EditarFechaSubetapa", "Etapas", null, new AjaxOptions
{
HttpMethod = "Post",
OnBegin = "alert('entra')",
OnSuccess = "alert('termina')"
}, new { id = "formSubeFecha", name = "Etapas", autocomplete = "off" }))
{
@Html.HiddenFor(f => f.oEvaluacionEtapaSubetapa.evaId, new { id = "evaId"})
@Html.HiddenFor(f => f.oEvaluacionEtapaSubetapa.etaId, new { id = "etaId" })
@Html.HiddenFor(f => f.oEvaluacionEtapaSubetapa.subId, new { id = "subEtaId" })
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Editar Fechas</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="recipient-name" class="col-form-label">Fecha inicial:</label>
@Html.TextBoxFor(f => f.oEvaluacionEtapaSubetapa.subFechainicio, new { id = "dateSubEtaFechaInicio", type = "date" })
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Fecha final:</label>
@Html.TextBoxFor(f => f.oEvaluacionEtapaSubetapa.subFechatermino, new { id = "dateSubEtaFechaTermino", type = "date" })
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<button form="formSubeFecha" type="submit">Aceptar</button>
</div>
}
}
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
@*
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
*@
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
</body>