/// <summary> /// VinculoEmpresaEdificioRegla realiza todas las validaciones de los vínculos y según el parámetro persiste o no /// </summary> /// <param name="modelo">Modelo del vínculo a guardar </param> /// <returns>Modelo del Vínculo guardado</returns> private List <VinculoEmpresaEdificioModel> VinculoEmpresaEdificioRegla(RegistrarVinculoEmpresaEdificioModel modelo, bool persist) { ValidarVinculoEmpresaEdificioSave(modelo); int idEmpresa; int.TryParse(modelo.Empresa, out idEmpresa); var listaVinculos = new List <VinculoEmpresaEdificio>(); var listadoDeErrores = new StringBuilder(); if (idEmpresa > 0) { var empresa = DaoEmpresa.GetById(idEmpresa); foreach (var idEdificio in modelo.ListaEdificios) { if (DaoVinculoEmpresaEdificio.VerificarVinculoEmpresaEdificio(idEdificio, idEmpresa)) { var edificio = DaoEdificio.GetById(idEdificio); var vinculo = new VinculoEmpresaEdificio(); vinculo.Empresa = empresa; vinculo.Edificio = edificio; vinculo.Estado = EstadoVinculoEmpresaEdificioEnum.ACTIVO; if (modelo.FechaDesde != null) { vinculo.FechaDesde = modelo.FechaDesde.Value; } vinculo.Observacion = modelo.Observacion; vinculo.DeterminaDomicilio = false; if (persist) { vinculo = DaoVinculoEmpresaEdificio.SaveOrUpdate(vinculo); } listaVinculos.Add(vinculo); } else { var edificio = DaoEdificio.GetById(idEdificio); listadoDeErrores.AppendLine("El vinculo con el edificio " + edificio.IdentificadorEdificio + " ya existe"); } } } if (!String.IsNullOrEmpty(listadoDeErrores.ToString())) { throw new BaseException(listadoDeErrores.ToString()); } return(AutoMapper.Mapper.Map <List <VinculoEmpresaEdificio>, List <VinculoEmpresaEdificioModel> >(listaVinculos)); }
private void ValidarVinculoEmpresaEdificioSave(RegistrarVinculoEmpresaEdificioModel modelo) { //TODO Esto no se puede validar con los DECORATORS del modelo? if (string.IsNullOrEmpty(modelo.Empresa)) { throw new BaseException(VinculoEmpresaEdificioResource.EMPRESA_NULL); } if (modelo.ListaEdificios == null || modelo.ListaEdificios.Count == 0) { throw new BaseException(VinculoEmpresaEdificioResource.EDIFICIO_NUL); } if (modelo.FechaDesde == null) { throw new BaseException(VinculoEmpresaEdificioResource.FECHA_NULL); } }
/// <summary> /// VinculoEmpresaEdificioUnicoSave guarda un vínculo de empresa a edificio asumiendo ESTRICTAMENTE que la lista /// de edificios del model viene con sólo 1 elemento /// </summary> /// <param name="modelo">Modelo del vínculo a guardar </param> /// <returns>Modelo del Vínculo guardado</returns> public VinculoEmpresaEdificioModel VinculoEmpresaEdificioUnicoValidar(RegistrarVinculoEmpresaEdificioModel modelo) { return(VinculoEmpresaEdificioRegla(modelo, false)[0]); }
public List <VinculoEmpresaEdificioModel> VinculoEmpresaEdificioSave(RegistrarVinculoEmpresaEdificioModel modelo) { return(VinculoEmpresaEdificioRegla(modelo, true)); }
/// <summary> /// VinculoEmpresaEdificioUnicoSave guarda un vínculo de empresa a edificio asumiendo ESTRICTAMENTE que la lista /// de edificios del model viene con sólo 1 elemento /// </summary> /// <param name="modelo">Modelo del vínculo a guardar </param> /// <returns>Modelo del Vínculo guardado</returns> public VinculoEmpresaEdificioModel VinculoEmpresaEdificioUnicoSave(RegistrarVinculoEmpresaEdificioModel modelo) { return(VinculoEmpresaEdificioSave(modelo)[0]); }