private void InitTarifario(Tarifario entity, double?importe = null, string oi = null)
        {
            var tarifas = FCMediosClient.Get <IList <TarifaFcMedios> >(GetTarifasAction)
                          .Where(e => e.cod_vehiculo == entity.Vehiculo.Codigo).ToList();

            var actualMedios    = PdmContext.Medios.ToList();
            var actualPlazas    = PdmContext.Plazas.ToList();
            var actualVehiculos = PdmContext.Vehiculos.ToList();

            #region Tarifas

            var toAdd = new List <Entities.Tarifa>();

            tarifas.ForEach(t =>
            {
                var medio    = actualMedios.Single(e => e.Codigo == t.cod_medio);
                var plaza    = actualPlazas.Single(e => e.Codigo == t.cod_plaza);
                var vehiculo = actualVehiculos.Single(e => e.Codigo == t.cod_vehiculo);

                toAdd.Add(new Entities.Tarifa
                {
                    CodigoPrograma = t.cod_programa,
                    Descripcion    = t.espacio,
                    HoraDesde      = t.hora_inicio,
                    HoraHasta      = t.hora_fin,
                    Importe        = importe ?? t.bruto,
                    OrdenDeCompra  = oi,
                    ImporteOld     = t.bruto,
                    Lunes          = t.Lunes,
                    Martes         = t.Martes,
                    Miercoles      = t.Miercoles,
                    Jueves         = t.Jueves,
                    Viernes        = t.Viernes,
                    Sabado         = t.Sabado,
                    Domingo        = t.Domingo,
                    Medio          = medio,
                    Plaza          = plaza,
                    Tarifario      = entity,
                    Vehiculo       = vehiculo,
                    CreateDate     = DateTime.Now,
                    CreatedBy      = App.ImportUser,
                    Enabled        = true,
                    Estado         = t.bruto > 0 ? EstadoTarifa.PendienteAprobacion : EstadoTarifa.SinTarifaAsociada
                });
            });

            entity.Estado = toAdd.All(tt => tt.Estado == EstadoTarifa.PendienteAprobacion)
                 ? EstadoTarifario.PendienteAprobacion
                 : EstadoTarifario.Editable;

            PdmContext.Configuration.AutoDetectChangesEnabled = false;
            toAdd.ForEach(e => PdmContext.Tarifas.Add(e));

            PdmContext.SaveChanges();
            PdmContext.Configuration.AutoDetectChangesEnabled = true;
            PdmContext = new PDMContext();

            #endregion
        }
        private void LogAprobarInfo(Tarifario entity)
        {
            var log = new Dtos.Log
            {
                Accion        = "TarifarioAdmin.AprobarTarifario",
                App           = "Irsa.PDM.Web",
                CreateDate    = DateTime.Now,
                Modulo        = "Tarifarios",
                Tipo          = App.Info,
                UsuarioAccion = UsuarioLogged,
                Descripcion   = string.Format("Tarifario aprobado. ID: {0}", entity.Id)
            };

            LogAdmin.Create(log);
        }
        private void LogAprobarError(Tarifario entity, Exception ex)
        {
            var log = new Dtos.Log
            {
                Accion        = "TarifarioAdmin.AprobarTarifario",
                App           = "Irsa.PDM.Web",
                CreateDate    = DateTime.Now,
                Modulo        = "Tarifarios",
                Tipo          = App.Error,
                UsuarioAccion = UsuarioLogged,
                Descripcion   = string.Format("Tarifario. ID: {0}", entity.Id),
                StackTrace    = GetExceptionDetail(ex)
            };

            LogAdmin.Create(log);
        }
        public override Tarifario ToEntity(Dtos.Tarifario dto)
        {
            var entity       = default(Tarifario);
            var vehiculo     = PdmContext.Vehiculos.Single(e => e.Id == dto.Vehiculo.Id);
            var tipoOeracion = (TipoOperacion)Enum.Parse(typeof(TipoOperacion), dto.TipoOperacion);

            if (!dto.Id.HasValue)
            {
                entity = new Tarifario
                {
                    CreateDate         = DateTime.Now,
                    CreatedBy          = UsuarioLogged,
                    Enabled            = true,
                    Estado             = EstadoTarifario.Editable,
                    FechaDesde         = dto.FechaDesde,
                    FechaHasta         = dto.FechaHasta,
                    Vehiculo           = vehiculo,
                    NumeroProveedorSap = dto.NumeroProveedorSap,
                    Documento          = dto.Documento,
                    TipoOperacion      = tipoOeracion
                };
            }
            else
            {
                entity = PdmContext.Tarifarios.Single(c => c.Id == dto.Id.Value);

                entity.UpdateDate         = DateTime.Now;
                entity.UpdatedBy          = UsuarioLogged;
                entity.FechaDesde         = dto.FechaDesde;
                entity.FechaHasta         = dto.FechaHasta;
                entity.Vehiculo           = vehiculo;
                entity.NumeroProveedorSap = dto.NumeroProveedorSap;
                entity.Documento          = dto.Documento;
                entity.TipoOperacion      = tipoOeracion;
            }

            return(entity);
        }