Ejemplo n.º 1
0
        public OrganizacionViewModel(OrganizacionLogic organizacionLogic,
                                     LocalidadLogic localidadLogic,
                                     RubroLogic rubroLogic,
                                     TipoOrganizacionLogic tipoOrganizacionLogic)
        {
            this.organizacionLogic     = organizacionLogic;
            this.localidadLogic        = localidadLogic;
            this.rubroLogic            = rubroLogic;
            this.tipoOrganizacionLogic = tipoOrganizacionLogic;

            Organizacion = new OrganizacionEditionData();

            Organizacion.AutoDetectCoordinates = true;

            Localidades        = new ObservableCollection <IdAndValue>();
            Rubros             = new ObservableCollection <IdAndValue>();
            TipoOrganizaciones = new ObservableCollection <IdAndValue>();

            SubmitValidation = () =>
            {
                return(Validate());
            };

            SubmitFunction = SubmitForm;
        }
Ejemplo n.º 2
0
        public int Edit(OrganizacionEditionData organizacionData)
        {
            Organizacion organizacion;

            if (organizacionData.Id.HasValue)
            {
                organizacion = Session.Get <Organizacion>(organizacionData.Id);

                if (organizacion == null)
                {
                    throw new Exception("Organizacion Invalido");
                }
            }
            else
            {
                organizacion = new Organizacion();
            }

            var rubro = rubroLogic.GetRubro(organizacionData.RubroId.Value);

            if (rubro == null)
            {
                throw new Exception("Rubro Invalido");
            }

            var tipoOrganizacion = tipoOrganizacionLogic.Get(organizacionData.TipoOrganizacionId.Value);

            if (tipoOrganizacion == null)
            {
                throw new Exception("Tipo de Organizacion Invalida");
            }

            var localidad = localidadLogic.Get(organizacionData.LocalidadId.Value);

            if (localidad == null)
            {
                throw new Exception("Localidad Invalida");
            }

            if (!organizacionData.AutoDetectCoordinates &&
                string.IsNullOrEmpty(organizacionData.Latitud) &&
                string.IsNullOrEmpty(organizacionData.Longitud))
            {
                throw new Exception("Debe especificar latitud y longitud.");
            }

            organizacion.ContactoCargo    = organizacionData.ContactoCargo;
            organizacion.Cuit             = organizacionData.Cuit;
            organizacion.Direccion        = organizacionData.Direccion;
            organizacion.Email            = organizacionData.Email;
            organizacion.Localidad        = localidad;
            organizacion.Nombre           = organizacionData.Nombre;
            organizacion.TipoOrganizacion = tipoOrganizacion;
            organizacion.Personal         = organizacionData.Personal;
            organizacion.Rubro            = rubro;
            organizacion.Telefono         = organizacionData.Telefono;
            organizacion.UsuarioInti      = organizacionData.UsuarioInti;
            organizacion.Web = organizacionData.Web;

            if (organizacionData.AutoDetectCoordinates)
            {
                var address = $"{organizacion.Direccion} {organizacion.Localidad.Nombre}";

                var coordinates = WebUtils.GetCoordinates(address);

                organizacion.Latitud  = coordinates.lat;
                organizacion.Longitud = coordinates.lng;
            }
            else
            {
                if (string.IsNullOrEmpty(organizacionData.Latitud))
                {
                    throw new Exception("El campo latitud no puede estar vacío.");
                }

                if (string.IsNullOrEmpty(organizacionData.Longitud))
                {
                    throw new Exception("El campo longitud no puede estar vacío.");
                }

                organizacion.Latitud  = organizacionData.Latitud;
                organizacion.Longitud = organizacionData.Longitud;
            }

            try
            {
                Session.Save(organizacion);

                Session.Transaction.Commit();
            }
            catch (UniqueConstraintViolationException)
            {
                throw new Exception($"El cuit {organizacion.Cuit} ya fue registrado en otra organización");
            }

            return(organizacion.Id);
        }
Ejemplo n.º 3
0
 public int Create(OrganizacionEditionData creationData)
 {
     return(Edit(creationData));
 }