Esempio n. 1
0
        public HttpResponseMessage PutDatosPersonales([FromBody] FloraNuevaProductor MeliponarioCaja)
        {
            if (MeliponarioCaja == null)
            {
                throw new ArgumentNullException();
            }

            List <RespuestaRegistroEntrada> Respuesta = new List <RespuestaRegistroEntrada>();
            var response = Request.CreateResponse <List <RespuestaRegistroEntrada> >(HttpStatusCode.Created, Respuesta);

            Engine.EngineDb FuncionDb          = new Engine.EngineDb();
            int             ExisteSyncIniciada = FuncionDb.ExisteSyncIniciada();

            if (ExisteSyncIniciada == -200)                                                                                          // VALIDAR SINCRONIZACION EN PROCESO
            {
                response.Headers.Location = new Uri(EngineData.Sitio + "SeleccionIdentificador/" + Engine.EngineData.SyncEnProceso); // EXISTE SINCRONIZACION EN PROCESO
                return(response);
            }

            int    n = 0;
            string IdentificadorMeliponarioCaja = EngineData.Zero;

            if (MeliponarioCaja.MiMeliponarioCaja != null)
            {
                if (MeliponarioCaja.MiMeliponarioCaja[0].Transaccion == EngineData.Insertar)
                {
                    int existeIdentificador = 1;
                    while (existeIdentificador >= 1)
                    {
                        IdentificadorMeliponarioCaja = Engine.EngineFloraNueva.IdentificadorReg().ToString();
                        existeIdentificador          = FuncionDb.ExisteIdentificador("Sp_ExisteIdentificadorMeliponarioCaja", IdentificadorMeliponarioCaja);
                    }
                    n = FuncionDb.NumeroDeCajasIdMeliponario(MeliponarioCaja.MiMeliponarioCaja[0].IdMeliponario);//Validar que el IdMeliponario Posea <= 30 Cajas
                    if (n <= 30)
                    {
                        n = FuncionDb.InsertarActualizarMeliponarioCaja(MeliponarioCaja.MiMeliponarioCaja, IdentificadorMeliponarioCaja, "Sp_ActualizarMeliponarioCaja");
                    }
                    else
                    {
                        n = -3;
                    }
                }
                else if (MeliponarioCaja.MiMeliponarioCaja[0].Transaccion == EngineData.Actualizar || MeliponarioCaja.MiMeliponarioCaja[0].Transaccion == EngineData.ActualizarEstado)
                {
                    IdentificadorMeliponarioCaja = MeliponarioCaja.MiMeliponarioCaja[0].Identificador;
                    n = FuncionDb.ExisteIdentificador("Sp_ExisteIdentificadorMeliponarioCaja", IdentificadorMeliponarioCaja);
                    if (n > 0)
                    {
                        n = FuncionDb.InsertarActualizarMeliponarioCaja(MeliponarioCaja.MiMeliponarioCaja, IdentificadorMeliponarioCaja, "Sp_ActualizarMeliponarioCaja");
                    }
                    else
                    {
                        n = -2;
                    }
                }
            }

            int m      = 0;
            int indice = 0;

            if (MeliponarioCaja.MiMeliponarioCajaHistorial != null)
            {
                foreach (FloraNuevaProductor.MeliponarioCajaHistorial Item in  MeliponarioCaja.MiMeliponarioCajaHistorial)
                {
                    RespuestaRegistroEntrada Registro = new RespuestaRegistroEntrada();
                    m = FuncionDb.InsertarActualizarMeliponarioCajaHistorial(Item, "Sp_ActualizarMeliponarioCajaHistorial");
                    if (m == -1)
                    {
                        Registro.Identificador = Item.Identificador;
                        Registro.Resultado     = true;
                        Registro.Posicion      = indice;
                        Registro.Error         = EngineData.Zero;
                        Registro.NombreTabla   = "MeliponarioCajaHistorial";
                    }
                    else
                    {
                        Registro.Identificador = Item.Identificador;
                        Registro.Resultado     = false;
                        Registro.Posicion      = indice;
                        Registro.Error         = EngineData.FalloActualizarMeliponarioCosechaDetalle;
                        Registro.NombreTabla   = "MeliponarioCajaHistorial";
                    }
                    Respuesta.Insert(indice, Registro);
                    indice++;
                }
            }

            if (Respuesta.Count > 0)
            {
                string result = new JavaScriptSerializer().Serialize(Respuesta);
                response = new HttpResponseMessage()
                {
                    Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json")
                };
            }

            if (n == 0)
            {
                response.Headers.Location = new Uri(EngineData.Sitio + "SeleccionIdentificador/");// Ninguna Operacion En MeliponarioCaja
            }
            else if (n >= 1)
            {
                response.Headers.Location = new Uri(EngineData.Sitio + "SeleccionIdentificador/" + n.ToString());// ACTUALIZADO EXITOSAMENTE
            }
            else if (n == -2)
            {
                response.Headers.Location = new Uri(EngineData.Sitio + "SeleccionIdentificador/" + EngineData.NoExisteIdentificador);// No Existe el identificador
            }
            else if (n == -3)
            {
                response.Headers.Location = new Uri(EngineData.Sitio + "SeleccionIdentificador/" + EngineData.IdMeliponarioMasDe30Cajas);// IdMeliponario mas de 30 cajas
            }
            else
            {
                response.Headers.Location = new Uri(EngineData.Sitio + "SeleccionIdentificador/" + EngineData.FalloActualizarMeliponarioCaja);// FALLO ACTUALIZACION
            }

            return(response);
        }