How to update the view data after editing (Asp.net core mvc 2)

0

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">&times;</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>
    
asked by Osvaldo Leon 24.04.2018 в 18:22
source

0 answers