コード例 #1
0
        public async Task <HttpResponseMessage> GetAsignacionesTramiteUnidad(
            AsignacionesTramiteUnidadDTO AsignacionesTramiteUnidad)
        {
            return(await HandleOperationExecutionAsync(async() =>
            {
                var result = await new CatalogosService().AsignacionesTramiteUnidad(AsignacionesTramiteUnidad);

                return Request.CreateResponse(HttpStatusCode.OK, result);
            }));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="AsignacionesTramiteUnidad"></param>
        /// <returns></returns>
        public async Task <int> AsignacionesTramiteUnidad(AsignacionesTramiteUnidadDTO AsignacionesTramiteUnidad)
        {
            using (var modelo = new ISSSTEEntities())
            {
                AsignacionesTramiteUnidad.UnidadesAsignadas.ForEach(S =>
                {
                    var asignacion = modelo.TramiteUnidadAtencion.FirstOrDefault(
                        Tu => Tu.CatTipoTramiteId == AsignacionesTramiteUnidad.CatTipoTramiteId &&
                        Tu.UnidadAtencionId == S.UnidadAtencionId);

                    if (asignacion != null)
                    {
                        asignacion.EsActivo = true;
                    }
                    else
                    {
                        var resultado = new TramiteUnidadAtencion
                        {
                            CatTipoTramiteId = AsignacionesTramiteUnidad.CatTipoTramiteId,
                            UnidadAtencionId = S.UnidadAtencionId,
                            EsActivo         = true
                        };

                        modelo.TramiteUnidadAtencion.Add(resultado);
                    }
                });

                AsignacionesTramiteUnidad.UnidadesNoAsignadas.ForEach(S =>
                {
                    var desasignar = modelo.TramiteUnidadAtencion
                                     .Where(Tu => Tu.CatTipoTramiteId == AsignacionesTramiteUnidad.CatTipoTramiteId &&
                                            Tu.UnidadAtencionId == S.UnidadAtencionId)
                                     .ToList();

                    desasignar.ForEach(D => { D.EsActivo = false; });
                });
                return(await modelo.SaveChangesAsync());
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="CatTipoTramiteId"></param>
        /// <param name="EsActivo"></param>
        /// <returns></returns>
        public async Task <AsignacionesTramiteUnidadDTO> ConsultaAsignacionesTramiteUnidad(int CatTipoTramiteId,
                                                                                           bool?EsActivo)
        {
            var asignaciones = new AsignacionesTramiteUnidadDTO();

            using (var modelo = new ISSSTEEntities())
            {
                var unidadesTramite = await modelo.TramiteUnidadAtencion
                                      .Where(S => S.EsActivo && S.CatTipoTramiteId == CatTipoTramiteId)
                                      .Select(S => new TramiteUnidadAtencionDTO
                {
                    UnidadAtencionId       = S.UnidadAtencionId,
                    UnidadAtencionConcepto = S.UnidadAtencion.Descripcion
                })
                                      .ToListAsync();

                var unidades =
                    await modelo.UnidadAtencion
                    .Where(S => S.EsActivo)
                    .Select(S => new TramiteUnidadAtencionDTO
                {
                    UnidadAtencionId       = S.UnidadAtencionId,
                    UnidadAtencionConcepto = S.Descripcion
                })
                    .ToListAsync();

                var noasignadas = unidades.Select(S => S.UnidadAtencionId)
                                  .Except(unidadesTramite.Select(S => S.UnidadAtencionId))
                                  .ToList();

                asignaciones.UnidadesAsignadas   = unidadesTramite;
                asignaciones.UnidadesNoAsignadas = unidades.Where(S => noasignadas.Contains(S.UnidadAtencionId))
                                                   .ToList();
            }

            return(asignaciones);
        }
 public async Task <int> AsignacionesTramiteUnidad(AsignacionesTramiteUnidadDTO AsignacionesTramiteUnidad)
 {
     return(await new TramiteUnidadAtencionDAO().AsignacionesTramiteUnidad(AsignacionesTramiteUnidad));
 }