Exemplo n.º 1
0
        async Task IDataInjector.UpdateCitaProgramacion(Ekilibrate.Model.Entity.Administrador.clsCitaProgramacion Data)
        {
            using (var scope = Ekilibrate.Data.Access.Common.ContainerConfig.ProxyContainer.BeginLifetimeScope("a"))
            {
                try
                {
                    var objController = new Ekilibrate.BL.Controller.Administrador.clsCitaProgramacion(scope);
                    await objController.Reprograma_update(Data);

                    var DBContext = scope.Resolve <DBTrnContext>();
                    DBContext.CommitTransaction();

                    objController = new Ekilibrate.BL.Controller.Administrador.clsCitaProgramacion(scope);
                    await objController.Reprograma_Insert(Data);

                    DBContext = scope.Resolve <DBTrnContext>();
                    DBContext.CommitTransaction();
                }
                catch (FaultException ex)
                {
                    throw ex;
                }
                catch (Exception ex)
                {
                    //var objController = new Ekilibrate.BL.Common.clsLog(scope);
                    //objController.GuardarLog(ex);
                    throw new FaultException("Error al registrar los datos del seguimiento.");
                }
            }
        }
        public async Task <ActionResult> Reprograma(string Fe, string Par, string Nu, string Ci, string Pr, string Ho, string Mi, string Ho2, string Mi2)
        {
            try
            {
                if (Fe != null)
                {
                    Ekilibrate.Model.Entity.Administrador.clsCitaProgramacion reprogramacion = new Ekilibrate.Model.Entity.Administrador.clsCitaProgramacion();
                    using (var scope = EkilibrateUI.Autofac.ContainerConfig.ProxyContainer.BeginLifetimeScope())
                    {
                        string[] Fechasplit = Fe.Split('-');

                        DateTime fechaProgramada = new DateTime(Convert.ToInt16(Fechasplit[2]), Convert.ToInt16(Fechasplit[1]), Convert.ToInt16(Fechasplit[0]));
                        reprogramacion.Id              = Convert.ToInt32(Pr);
                        reprogramacion.CitaId          = Convert.ToInt32(Ci);
                        reprogramacion.Cancelada       = true;
                        reprogramacion.NutricionistaId = Convert.ToInt32(Nu);
                        reprogramacion.Fecha           = fechaProgramada;
                        reprogramacion.FechaInicio     = new DateTime(Convert.ToInt16(Fechasplit[2]), Convert.ToInt16(Fechasplit[1]), Convert.ToInt16(Fechasplit[0]), Convert.ToInt16(Ho), Convert.ToInt16(Mi), 0);
                        reprogramacion.FechaFin        = new DateTime(Convert.ToInt16(Fechasplit[2]), Convert.ToInt16(Fechasplit[1]), Convert.ToInt16(Fechasplit[0]), Convert.ToInt16(Ho2), Convert.ToInt16(Mi2), 0);

                        if (reprogramacion.FechaInicio < reprogramacion.FechaFin)
                        {
                            var middleTier = scope.Resolve <Ekilibrate.Model.Services.Nutricionista.IDataInjector>();
                            await middleTier.UpdateCitaProgramacion(reprogramacion);
                        }
                        else
                        {
                            //error en horario
                        }
                    }
                }
                else
                {
                    //No puede reprogramar cita el mismo día
                }
                return(View("Index"));
            }
            catch (Exception)
            {
                throw;
            }
        }