public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log)
        {
            log.Info("C# HTTP trigger function [GetTempHumidity] processed a request.");

            using (var analytic = new AnalyticService(new RequestTelemetry
            {
                Name = nameof(GetTempHumidity)
            }))
            {
                try
                {
                    var kvps = req.GetQueryNameValuePairs();

                    var tempHumidity = CosmosDataService.Instance("TempHumidityCollection").GetTempHumidityModel();

                    if (tempHumidity.Count == 0)
                    {
                        return(req.CreateErrorResponse(HttpStatusCode.NoContent, "No results found."));
                    }

                    return(req.CreateResponse(HttpStatusCode.OK, tempHumidity));
                }
                catch (Exception e)
                {
                    // track exceptions that occur
                    analytic.TrackException(e);
                    return(req.CreateErrorResponse(HttpStatusCode.BadRequest, e.Message, e));
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Geolocalizacions the walmart.
        /// </summary>
        /// <param name="lat">Lat.</param>
        /// <param name="lon">Lon.</param>
        async void geolocalizacionWalmart(string lat, string lon)
        {
            DataManager.actualLatitud  = lat;
            DataManager.actualLongitud = lon;
            var existeSucursalSeleccionada = DataManager.RealmInstance.All <SucursalTienda>();

            if (!existeSucursalSeleccionada.Any())
            {
                i = new Intent(this, typeof(UbicacionTiendaActivity));
                StartActivity(i);
                AnalyticService.TrackAnalytics("Main Activity", new Dictionary <string, string> {
                    { "Category", "App, no tiene sucursal asignada" },
                    { "Action", "redireccionado a mapa" }
                });
            }
            else
            {
                i = new Intent(this, typeof(HomeAgregaProductoActivity));
                StartActivity(i);
                AnalyticService.TrackAnalytics("Main Activity", new Dictionary <string, string> {
                    { "Category", "App, si tiene sucursal asignada" },
                    { "Action", "redireccionado a home" }
                });
            }
        }
Exemple #3
0
        /// <summary>
        /// Ons the create.
        /// </summary>
        /// <param name="savedInstanceState">Saved instance state.</param>
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            //BroadcastProductosPendientes();
            BroadcastProduct();
            BroadcastPendientesNoFinalizados();
            DataManager.FechaHoy = DateTime.Now.DayOfYear;
            SetContentView(Resource.Layout.main_activity);
            if (ValidationUtils.GetNetworkStatus())
            {
                await GetLocationCompatAsync();

                loading();
                await PerfilarAsync();

                AppCenter.Start(Constantes.KEY_APP_CENTER, typeof(Analytics), typeof(Crashes));
            }
            else
            {
                Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(this);
                builder.SetTitle("Productos Refresh");
                builder.SetIcon(Resource.Mipmap.ic_refresh);
                builder.SetCancelable(false);
                builder.SetMessage(" Estimado usuario, al iniciar productos refresh debes tener acceso a internet. Luego podrás ocupar la aplicación sin problemas incluso cuando no tengas conexión a la red.\n Debes tener en cuenta que si cierras las app, debes estar conectado a internet para abrirla nuevamente.");
                builder.SetPositiveButton("Aceptar", delegate { Cerrar.closeApplication(this); });
                builder.Show();
                AnalyticService.TrackAnalytics("Main Activity", new Dictionary <string, string> {
                    { "Category", "Sin conexion a internet al iniciar la app" },
                    { "Action", "Validacion de conexion" }
                });
            }
        }
Exemple #4
0
        public static void Run([ServiceBusTrigger(Keys.ServiceBus.EndGameBusName)] BrokeredMessage message, TraceWriter log)
        {
            using (var analytic = new AnalyticService(new RequestTelemetry
            {
                Name = nameof(EndGame)
            }))
            {
                try
                {
                    var gameId = (string)message.Properties["gameId"];

                    using (var client = new CosmosDataService())
                    {
                        var game = client.GetItemAsync <Game>(gameId).Result;
                        var http = new HttpClient();
                        var url  = $"https://huntapp.azurewebsites.net/api/SaveGame";

                        dynamic payload = new JObject();
                        payload.action    = GameUpdateAction.EndGame;
                        payload.game      = JObject.FromObject(game);
                        payload.arguments = null;

                        var json     = JsonConvert.SerializeObject(payload);
                        var content  = new StringContent(json);
                        var response = http.PostAsync(url, content).Result;
                    }
                }
                catch (Exception e)
                {
                    analytic.TrackException(e);
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// Opens the maps.
        /// </summary>
        /// <param name="activeLocal">If set to <c>true</c> active local.</param>
        public void OpenMaps(bool activeLocal = false)
        {
            locMgr = GetSystemService(Context.LocationService) as LocationManager;

            if (locMgr.AllProviders.Contains(LocationManager.GpsProvider) &&
                locMgr.IsProviderEnabled(LocationManager.GpsProvider))
            {
                if (ActivityCompat.CheckSelfPermission(this, Android.Manifest.Permission.AccessFineLocation) ==
                    Permission.Granted &&
                    ActivityCompat.CheckSelfPermission(this, Android.Manifest.Permission.AccessCoarseLocation) ==
                    Permission.Granted)
                {
                    OpenSucursal(activeLocal);
                }
                else
                {
                    RequestPermissions(
                        new String[] { Android.Manifest.Permission.AccessCoarseLocation, Android.Manifest.Permission.AccessFineLocation }
                        , 0
                        );

                    OpenMaps(activeLocal);
                }
            }
            else
            {
                dialogWarning("Productos Refresh", "No hay acceso a gps. Por favor, habilitar.", "aceptar");
                AnalyticService.TrackAnalytics("Main Activity", new Dictionary <string, string> {
                    { "Category", "Sin acceso al gps" },
                    { "Action", "debe tener conexion a gps" }
                });
            }
        }
Exemple #6
0
        /// <summary>
        /// Ons the create.
        /// </summary>
        /// <param name="savedInstanceState">Saved instance state.</param>
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            if (WindowManager.DefaultDisplay.Rotation == SurfaceOrientation.Rotation0 ||
                WindowManager.DefaultDisplay.Rotation == SurfaceOrientation.Rotation180)
            {
                SetContentView(Resource.Layout.home_agrega_producto_activity);
            }
            else
            {
                SetContentView(Resource.Layout.home_agrega_producto_horizontal_activity);
            }
            imgIcProductoAgregado                   = FindViewById <ImageView>(Resource.Id.imgIcProductoAgregado);
            animationVisible                        = AnimationUtils.LoadAnimation(this, Resource.Animation.box_amination_visible);
            animationInvisible                      = AnimationUtils.LoadAnimation(this, Resource.Animation.box_amination_invisible);
            btnCerrar                               = FindViewById <Button>(Resource.Id.btnCerrar);
            btnVolver                               = FindViewById <ImageView>(Resource.Id.btnVolver);
            btnLogout                               = FindViewById <ImageButton>(Resource.Id.btnLogout);
            btnHomeAgregarProducto                  = FindViewById <ImageButton>(Resource.Id.btnHomeAgregarProducto);
            btnHomeProductoPendientes               = FindViewById <ImageButton>(Resource.Id.btnHomeProductoPendientes);
            linearLayoutProductoAgregadoOK          = FindViewById <LinearLayout>(Resource.Id.linearLayoutProductoAgregadoOK);
            linearLayoutBtnIrAMapasDeTienda         = FindViewById <LinearLayout>(Resource.Id.linearLayoutBtnIrAMapasDeTienda);
            linearLayoutEtiquetaProductosNoEnviados = FindViewById <LinearLayout>(Resource.Id.linearLayoutEtiquetaProductosNoEnviados);
            lblNombreProducto                       = FindViewById <TextView>(Resource.Id.lblNombreProducto);
            lblCantidadProductosKg                  = FindViewById <TextView>(Resource.Id.lblCantidadProductoKg);
            lblNombreUsuarioToolbar                 = FindViewById <TextView>(Resource.Id.lblNombreUsuarioToolbar);
            lblMensajeCargaYContadorDeProductosPendientesACargar = FindViewById <TextView>(Resource.Id.lblMensajeCargaYContadorDeProductosPendientesACargar);
            lblNombreActivity                      = FindViewById <TextView>(Resource.Id.lblNombreActivity);
            lblNombreTienda                        = FindViewById <TextView>(Resource.Id.lblNombreTienda);
            lblTipoTienda                          = FindViewById <TextView>(Resource.Id.lblTipoTienda);
            linearLayoutBtnCambiarUser             = FindViewById <LinearLayout>(Resource.Id.linearLayoutBtnCambiarUser);
            linearLayoutBtnCambiarUser.Click      += LinearLayoutBtnCambiarUser_Click;
            lblNombreActivity.Text                 = "Productos Refresh";
            btnVolver.Visibility                   = ViewStates.Invisible;
            btnHomeAgregarProducto.Click          += BtnHomeAgregarProducto_Click;
            btnHomeProductoPendientes.Click       += BtnHomeProductoPendientes_Click;
            btnCerrar.Click                       += BtnCerrar_Click;
            linearLayoutBtnIrAMapasDeTienda.Click += LinearLayoutBtnIrAMapasDeTienda_Click;
            string nombreSucursal = dataSucursal.FirstOrDefault().name.ToString();
            string tipoSucursal   = dataSucursal.FirstOrDefault().format.ToString();

            lblNombreTienda.Text = nombreSucursal;
            lblTipoTienda.Text   = tipoSucursal;
            fuente            = new Fuente(this);
            fontRobotoRegular = fuente.fuenteRobotoRegular();
            fontRobotoMedium  = fuente.fuenteRobotoMedium();
            tipografiasEnBotones(btnCerrar);
            tipografiasEnTextView(lblNombreProducto, lblCantidadProductosKg, lblMensajeCargaYContadorDeProductosPendientesACargar);
            ActivityContexts.homeAddActivity = this;
            linearLayoutEtiquetaProductosNoEnviados.Visibility = ViewStates.Invisible;
            if (string.IsNullOrEmpty(DataManager.nombreUsuario))
            {
                IngresoUsuarioResponsableActivity.viewFormularioUser(this);
            }
            nombreUsuarioToolbar();
            AnalyticService.TrackAnalytics("Home app", new Dictionary <string, string> {
                { "Category", "sucursal asignada " + nombreSucursal + ", " + tipoSucursal },
                { "Action", "OnCreate" }
            });
        }
        /// <summary>
        /// Takes the photo.
        /// </summary>
        /// <returns>The photo.</returns>
        public async Task <byte[]> TakePhoto()
        {
            var photo = await PhotoService.TaskPhotoAsync();

            if (photo.Length == 0)
            {
                return(photo);
            }

            // Track Camera usage
            AnalyticService.Track("Photo taken");

            ImageProcessingService.Open(photo);
            var detections = await DetectionService.DetectAsync(photo);

            foreach (var d in detections)
            {
                // Track each detection
                AnalyticService.Track($"Detection done:{d.Emotion.ToLower()}");

#if DEBUG
                ImageProcessingService.DrawDebugRect(d.Rectangle);
#endif
                ImageProcessingService.DrawImage(FileService.LoadResource($"{d.Emotion.ToLower()}.png"), d.Rectangle);
            }

            var finalImage = ImageProcessingService.GetImage();
            ImageProcessingService.Close();

            return(finalImage);
        }
        /// <summary>
        /// Linears the layout button ir AM apas de tienda click.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        void LinearLayoutBtnIrAMapasDeTienda_Click(object sender, EventArgs e)
        {
            Intent intentUbicacionTiendaActivity = new Intent(this, typeof(UbicacionTiendaActivity));

            StartActivity(intentUbicacionTiendaActivity);
            DataManager.estadoVolverAlMapa = "1";
            AnalyticService.TrackAnalytics("Home app", new Dictionary <string, string> {
                { "Category", "Boton ir a mapas" },
                { "Action", "click BtnHomeAgregarProducto_Click" }
            });
        }
        /// <summary>
        /// Buttons the home agregar producto click.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        void BtnHomeAgregarProducto_Click(object sender, EventArgs e)
        {
            /* Intent intentAgregarProductoActivity = new Intent(this, typeof(AgregarProductoActivity));
             * StartActivity(intentAgregarProductoActivity);*/;
            GaleriaFragment galeriaFragment = new GaleriaFragment();
            var             transcation     = SupportFragmentManager.BeginTransaction();

            galeriaFragment.Show(transcation, galeriaFragment.Tag);
            galeriaFragment.Cancelable = false;
            Toast.MakeText(ApplicationContext, "Saca una foto a la etiqueta", ToastLength.Long).Show();
            DataManager.estadoBusquedaProducto = string.Empty;
            DataManager.barra                 = string.Empty;
            DataManager.refreshItem           = string.Empty;
            DataManager.refreshDepto          = string.Empty;
            DataManager.refreshItemBalanza    = string.Empty;
            DataManager.refreshNombreProducto = string.Empty;
            AnalyticService.TrackAnalytics("Home app", new Dictionary <string, string> {
                { "Category", "Boton agregar podructo ir a formulario de inngreso producto" },
                { "Action", "click BtnHomeAgregarProducto_Click" }
            });
        }
Exemple #10
0
        /// <summary>
        /// Ons the create.
        /// </summary>
        /// <param name="savedInstanceState">Saved instance state.</param>
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            BroadcastProduct();
            DataManager.FechaHoy = DateTime.Now.DayOfYear;
            SetContentView(Resource.Layout.main_activity);
            if (ValidationUtils.GetNetworkStatus())
            {
                try{
                    AppCenter.Start("c72dc3eb-e784-4e20-930f-5b4095f95ed0", typeof(Analytics), typeof(Crashes));
                    DataManager.appCenterActive = true;
                }catch {
                    DataManager.appCenterActive = false;
                }

                await GetLocationCompatAsync();

                loading();
                await PerfilarAsync();
            }
            else
            {
                Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(this);
                builder.SetTitle("Trazabilidad de carnes");
                builder.SetIcon(Resource.Mipmap.ic_trazabilidad);
                builder.SetCancelable(false);
                builder.SetMessage(" Estimado usuario, al iniciar trazabilidad de carnes debes tener acceso a internet. Luego podrás ocupar la aplicación sin problemas incluso cuando no tengas conexión a la red.\n Debes tener en cuenta que si cierras las app, debes estar conectado a internet para abrirla nuevamente.");
                builder.SetPositiveButton("Aceptar", delegate {
                    closeApplication();
                });
                builder.Show();
                AnalyticService.TrackAnalytics("Main Activity", new Dictionary <string, string> {
                    { "Category", "Sin conexion a internet al iniciar la app" },
                    { "Action", "Validacion de conexion" }
                });
            }
        }
        /// <summary>
        /// Dialogos the confirmacion agregar producto.
        /// </summary>
        /// <param name="activity">Activity.</param>
        /// <param name="item">Item.</param>
        /// <param name="itemNombreProducto">Item nombre producto.</param>
        /// <param name="txtCantidadDeUnidadesProducto">Text cantidad de unidades producto.</param>
        /// <param name="itemBalanza">Item balanza.</param>
        /// <param name="itemDpto">Item dpto.</param>
        /// <param name="fechaVencDesc">Fecha venc desc.</param>
        /// <param name="txtFechaDescongelacion">Text fecha descongelacion.</param>
        /// <param name="temperaturaIdeal">Temperatura ideal.</param>
        /// <param name="tiempo">Tiempo.</param>
        public static void dialogoConfirmacionAgregarProducto(Activity activity
                                                              , IngresoItemRefreshRequest item
                                                              , string itemNombreProducto
                                                              , string txtCantidadDeUnidadesProducto
                                                              , string itemBalanza
                                                              , string itemDpto
                                                              , string fechaVencDesc
                                                              , string txtFechaDescongelacion
                                                              , string temperaturaIdeal
                                                              , string tiempo)
        {
            customDialog = new Dialog(activity, Resource.Style.Theme_Dialog_Translucent);
            customDialog.SetCancelable(false);
            customDialog.SetContentView(Resource.Layout.agregar_producto_confirmacion_dialogo);
            ImageView imgLoadingBtnAgregaPruductoConfirmacion = customDialog.FindViewById <ImageView>(Resource.Id.imgLoadingBtnAgregaPruductoConfirmacion);

            Glide.With(activity).Load(Resource.Drawable.cargando).Into(imgLoadingBtnAgregaPruductoConfirmacion);
            TextView  lblBtnAgregarProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblBtnAgregarProductoConfirmacion);
            ImageView imgDanger = customDialog.FindViewById <ImageView>(Resource.Id.imgDanger);
            TextView  lblNombreProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblNombreProductoConfirmacion);

            lblNombreProductoConfirmacion.Text = itemNombreProducto;
            TextView lblItemProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblItemProductoConfirmacion);

            lblItemProductoConfirmacion.Text = itemBalanza;
            TextView lblDepartamentoProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblDepartamentoProductoConfirmacion);

            lblDepartamentoProductoConfirmacion.Text = itemDpto;

            TextView lblFechaDescongelacionProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblFechaDescongelacionProductoConfirmacion);

            lblFechaDescongelacionProductoConfirmacion.Text = txtFechaDescongelacion;
            TextView lblFechaVencimientoDescongelacionProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblFechaVencimientoDescongelacionProductoConfirmacion);

            lblFechaVencimientoDescongelacionProductoConfirmacion.Text = fechaVencDesc;
            TextView lblCantidadDeUnidadesProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblCantidadDeUnidadesProductoConfirmacion);

            lblCantidadDeUnidadesProductoConfirmacion.Text = item.CantidadUnidades;
            TextView lblTemperaturaIdealProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblTemperaturaIdealProductoConfirmacion);

            lblTemperaturaIdealProductoConfirmacion.Text = temperaturaIdeal + " ºC";
            TextView lblHintLoteProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblHintLoteProductoConfirmacion);
            TextView lblLoteProductoConfirmacion     = customDialog.FindViewById <TextView>(Resource.Id.lblLoteProductoConfirmacion);

            TextView     lblHintFechaElaboracionProductoConfirmacion = customDialog.FindViewById <TextView>(Resource.Id.lblHintFechaElaboracionProductoConfirmacion);
            TextView     lblFechaElaboracionProductoConfirmacion     = customDialog.FindViewById <TextView>(Resource.Id.lblFechaElaboracionProductoConfirmacion);
            TextView     lblHintTemperaturaProductoConfirmacion      = customDialog.FindViewById <TextView>(Resource.Id.lblHintTemperaturaProductoConfirmacion);
            TextView     lblTemperaturaProductoConfirmacion          = customDialog.FindViewById <TextView>(Resource.Id.lblTemperaturaProductoConfirmacion);
            TextView     lblHintComentarioProductoConfirmacion       = customDialog.FindViewById <TextView>(Resource.Id.lblHintComentarioProductoConfirmacion);
            TextView     lblComentarioProductoConfirmacion           = customDialog.FindViewById <TextView>(Resource.Id.lblComentarioProductoConfirmacion);
            LinearLayout llMensajeProductoExistente = customDialog.FindViewById <LinearLayout>(Resource.Id.llMensajeProductoExistente);

            if (string.IsNullOrEmpty(item.LoteProduccion))
            {
                lblHintLoteProductoConfirmacion.Visibility             = ViewStates.Gone;
                lblLoteProductoConfirmacion.Visibility                 = ViewStates.Gone;
                lblHintTemperaturaProductoConfirmacion.Visibility      = ViewStates.Visible;
                lblTemperaturaProductoConfirmacion.Visibility          = ViewStates.Visible;
                lblTemperaturaProductoConfirmacion.Text                = item.Temperatura + " ºC";
                lblHintComentarioProductoConfirmacion.Visibility       = ViewStates.Visible;
                lblComentarioProductoConfirmacion.Visibility           = ViewStates.Visible;
                lblComentarioProductoConfirmacion.Text                 = item.Comentario;
                lblHintFechaElaboracionProductoConfirmacion.Visibility = ViewStates.Visible;
                lblFechaElaboracionProductoConfirmacion.Visibility     = ViewStates.Visible;
                lblFechaElaboracionProductoConfirmacion.Text           = item.FechaElaboracion;
            }
            else
            {
                lblHintLoteProductoConfirmacion.Visibility             = ViewStates.Visible;
                lblLoteProductoConfirmacion.Visibility                 = ViewStates.Visible;
                lblLoteProductoConfirmacion.Text                       = item.LoteProduccion;
                lblHintTemperaturaProductoConfirmacion.Visibility      = ViewStates.Visible;
                lblTemperaturaProductoConfirmacion.Visibility          = ViewStates.Visible;
                lblTemperaturaProductoConfirmacion.Text                = item.Temperatura + " ºC";
                lblHintComentarioProductoConfirmacion.Visibility       = ViewStates.Visible;
                lblComentarioProductoConfirmacion.Visibility           = ViewStates.Visible;
                lblComentarioProductoConfirmacion.Text                 = item.Comentario;
                lblHintFechaElaboracionProductoConfirmacion.Visibility = ViewStates.Gone;
                lblFechaElaboracionProductoConfirmacion.Visibility     = ViewStates.Gone;
            }
            List <LoteParceladoProducto>    existenProductosLoteParceladoExacto   = DataManager.RealmInstance.All <LoteParceladoProducto>().Where(w => w.ItemPadre == item.ItemPadre && w.DayOfCharge == DataManager.FechaHoy && w.LoteProduccion == item.LoteProduccion && w.CantidadUnidades == item.CantidadUnidades && w.Comentario == item.Comentario).ToList();
            List <LoteParceladoProducto>    existenProductosLoteParcelado         = DataManager.RealmInstance.All <LoteParceladoProducto>().Where(w => w.ItemPadre == item.ItemPadre && w.DayOfCharge == DataManager.FechaHoy && w.LoteProduccion == item.LoteProduccion && w.CantidadUnidades == item.CantidadUnidades).ToList();
            List <LoteParceladoProducto>    existenProductosLoteParceladoCompleta = DataManager.RealmInstance.All <LoteParceladoProducto>().Where(w => w.ItemPadre == item.ItemPadre && w.DayOfCharge == DataManager.FechaHoy).ToList();
            List <ProductoRefreshPendiente> existenProductosPendientesLote        = DataManager.RealmInstance.All <ProductoRefreshPendiente>().Where(w => w.ItemPadre == item.ItemPadre && w.DayOfCharge == DataManager.FechaHoy).ToList();

            if (existenProductosLoteParcelado.Any())
            {
                llMensajeProductoExistente.Visibility = ViewStates.Visible;
            }
            else
            {
                llMensajeProductoExistente.Visibility = ViewStates.Gone;
            }
            //if (!item.Temperatura.Equals(temperaturaIdeal))
            if (Convert.ToDecimal(item.Temperatura, CultureInfo.InvariantCulture) <= Convert.ToDecimal(temperaturaIdeal, CultureInfo.InvariantCulture) &&
                !item.Temperatura.Equals(temperaturaIdeal))
            {
                lblHintTemperaturaProductoConfirmacion.SetTextColor(Android.Support.V4.Content.ContextCompat.GetColorStateList(activity.ApplicationContext, Resource.Color.colorRed));
                lblTemperaturaProductoConfirmacion.SetTextColor(Android.Support.V4.Content.ContextCompat.GetColorStateList(activity.ApplicationContext, Resource.Color.colorRed));
                imgDanger.Visibility = ViewStates.Visible;
            }
            else
            {
                lblHintTemperaturaProductoConfirmacion.SetTextColor(Android.Support.V4.Content.ContextCompat.GetColorStateList(activity.ApplicationContext, Resource.Color.gris));
                lblTemperaturaProductoConfirmacion.SetTextColor(Android.Support.V4.Content.ContextCompat.GetColorStateList(activity.ApplicationContext, Resource.Color.gris));
                imgDanger.Visibility = ViewStates.Gone;
            }

            Button btnCancelarProductoConfirmacion = customDialog.FindViewById <Button>(Resource.Id.btnCancelarProductoConfirmacion);

            btnCancelarProductoConfirmacion.Click += delegate {
                customDialog.Dismiss();
            };
            LinearLayout llBtnAgregarProductoConfirmacion = customDialog.FindViewById <LinearLayout>(Resource.Id.llBtnAgregarProductoConfirmacion);
            Button       btnEsUnNuevoProducto             = customDialog.FindViewById <Button>(Resource.Id.btnEsUnNuevoProducto);
            Button       btnEsElMismoProducto             = customDialog.FindViewById <Button>(Resource.Id.btnEsElMismoProducto);


            if (!existenProductosLoteParcelado.Any())
            {
                llBtnAgregarProductoConfirmacion.Visibility = ViewStates.Visible;
                btnEsUnNuevoProducto.Visibility             = ViewStates.Gone;
                btnEsElMismoProducto.Visibility             = ViewStates.Gone;
            }
            else
            {
                llBtnAgregarProductoConfirmacion.Visibility = ViewStates.Gone;
                btnEsUnNuevoProducto.Visibility             = ViewStates.Visible;
                btnEsElMismoProducto.Visibility             = ViewStates.Visible;
            }

            llBtnAgregarProductoConfirmacion.Click += async delegate {
                llBtnAgregarProductoConfirmacion.Clickable         = false;
                llBtnAgregarProductoConfirmacion.Enabled           = false;
                imgLoadingBtnAgregaPruductoConfirmacion.Visibility = ViewStates.Visible;
                lblBtnAgregarProductoConfirmacion.Visibility       = ViewStates.Gone;
                if (item.FechaElaboracion.Contains("/"))
                {
                    DateTime dt = DateTime.ParseExact(item.FechaElaboracion, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                    var      fechaElabService = String.Format("{0:yyyyMMdd}", dt);
                    item.FechaElaboracion = fechaElabService;
                }
                if (!string.IsNullOrEmpty(item.LoteProduccion))
                {
                    if (string.IsNullOrEmpty(DataManager.correlativo.ToString()) || DataManager.correlativo == 0)
                    {
                        if (existenProductosLoteParceladoCompleta.Count >= 1)
                        {
                            item.Correlativo = int.Parse(existenProductosLoteParceladoCompleta.LastOrDefault().Correlativo) + 1;
                        }
                        else
                        {
                            item.Correlativo = 1;
                        }
                    }
                    else
                    {
                        item.Correlativo = DataManager.correlativo;
                    }
                }
                string postData       = JsonConvert.SerializeObject(item);
                var    itemInventario = await ServiceDelegate.Instance.IngresoItemRefreshImg(JObject.Parse(postData));

                if (itemInventario.Success)
                {
                    imgLoadingBtnAgregaPruductoConfirmacion.Visibility = ViewStates.Gone;
                    lblBtnAgregarProductoConfirmacion.Visibility       = ViewStates.Visible;
                    DataManager.estadoProductoAgregado           = true;
                    DataManager.nombreProductoAgregado           = itemNombreProducto;
                    DataManager.cantidadUnidadesProductoAgregado = "ha sido agregado por " + txtCantidadDeUnidadesProducto + " unidades";
                    DataManager.fechaDescongelacionManager       = string.Empty;
                    DataManager.fechaElaboracionManager          = string.Empty;
                    Intent intentAlHomeAgregaProductoActivity = new Intent(activity, typeof(HomeAgregaProductoActivity));
                    activity.StartActivity(intentAlHomeAgregaProductoActivity);
                    DataManager.estadoBusquedaProducto = string.Empty;
                    AnalyticService.TrackAnalytics("Agregar producto app", new Dictionary <string, string> {
                        { "Category", "Codigo retorno success true" },
                        { "Action", "producto " + DataManager.refreshNombreProducto + DataManager.cantidadUnidadesProductoAgregado + ". En el servicio" }
                    });
                }
                else
                {
                    DataManager.RealmInstance.Write(() =>
                    {
                        DataManager.RealmInstance.Add(item);
                    });
                    imgLoadingBtnAgregaPruductoConfirmacion.Visibility = ViewStates.Gone;
                    lblBtnAgregarProductoConfirmacion.Visibility       = ViewStates.Visible;
                    DataManager.estadoProductoAgregado     = false;
                    DataManager.fechaDescongelacionManager = string.Empty;
                    DataManager.fechaElaboracionManager    = string.Empty;
                    Intent intentAlHomeAgregaProductoActivity = new Intent(activity, typeof(HomeAgregaProductoActivity));
                    activity.StartActivity(intentAlHomeAgregaProductoActivity);
                    DataManager.estadoBusquedaProducto = string.Empty;
                    AnalyticService.TrackAnalytics("Agregar producto app", new Dictionary <string, string> {
                        { "Category", "Codigo retorno success true" },
                        { "Action", "producto " + DataManager.refreshNombreProducto + DataManager.cantidadUnidadesProductoAgregado + ". En el bd local" }
                    });
                }
                if (!string.IsNullOrEmpty(item.LoteProduccion))
                {
                    if (string.IsNullOrEmpty(DataManager.correlativo.ToString()) || DataManager.correlativo == 0)
                    {
                        if (existenProductosLoteParceladoCompleta.Count >= 1)
                        {
                            item.Correlativo = int.Parse(existenProductosLoteParceladoCompleta.LastOrDefault().Correlativo) + 1;
                        }
                        else
                        {
                            item.Correlativo = 1;
                        }
                    }
                    else
                    {
                        item.Correlativo = DataManager.correlativo;
                    }
                }
                //*---Validar si temperatura ingresada es igual a la temperatura ideal
                //* ---de no cumplirse, se debe agregar a la bd local de productos pendientes
                //if (!item.Temperatura.Equals(temperaturaIdeal))
                if (Convert.ToDecimal(item.Temperatura, CultureInfo.InvariantCulture) <= Convert.ToDecimal(temperaturaIdeal, CultureInfo.InvariantCulture) &&
                    !item.Temperatura.Equals(temperaturaIdeal))
                {
                    string hora               = item.HoraCreacion;
                    string a                  = hora.Insert(2, ":");
                    string horaCrea           = a.Insert(5, ":");
                    string tiempoHrsRestante  = calcularTiempo(horaCrea, tiempo);
                    string tiempoRestanteProd = tiempoHrsRestante.Substring(0, 5);
                    //DataManager.cantidadUnidadesProductoAgregado = "quedó registrado pero deberá esperar aproximadamente hasta las " + tiempoRestanteProd + " horas, Para que llegue a su temperatura ideal de " + temperaturaIdeal + " ºC";
                    DataManager.cantidadUnidadesProductoAgregado = "quedó registrado pero deberá esperar que alcance la Tº ideal, Por favor revise su procedimiento refresh.";
                    ProductoRefreshPendiente p1 = new ProductoRefreshPendiente();
                    p1.ItemPadre                = item.ItemPadre;
                    p1.FechaElaboracion         = item.FechaElaboracion;
                    p1.LoteProduccion           = item.LoteProduccion;
                    p1.FechaDescongelado        = item.FechaDescongelado;
                    p1.IdParametro              = item.IdParametro;
                    p1.Temperatura              = item.Temperatura;
                    p1.EtiquetaPropia           = item.EtiquetaPropia;
                    p1.UsuarioCreacion          = item.UsuarioCreacion;
                    p1.FechaCreacion            = item.FechaCreacion;
                    p1.HoraCreacion             = item.HoraCreacion;
                    p1.Comentario               = item.Comentario;
                    p1.CantidadUnidades         = item.CantidadUnidades;
                    p1.Imagen                   = item.Imagen;
                    p1.NombreProducto           = itemNombreProducto;
                    p1.TiempoRestante           = tiempoRestanteProd;
                    p1.NombreDpto               = itemDpto;
                    p1.FechaVencimiento         = fechaVencDesc;
                    p1.EstadoAlertaNotificacion = false;
                    p1.DayOfCharge              = DateTime.Now.DayOfYear;
                    p1.Correlativo              = item.Correlativo;
                    List <ProductoRefreshPendiente> lll = new List <ProductoRefreshPendiente>();
                    List <LoteParceladoProducto>    lp  = new List <LoteParceladoProducto>();
                    var p1Json = JsonConvert.SerializeObject(p1);
                    LoteParceladoProducto prodAddLote = JsonConvert.DeserializeObject <LoteParceladoProducto>(p1Json);
                    lp.Add(prodAddLote);
                    lll.Add(p1);
                    var dataPendientes             = DataManager.RealmInstance.All <ProductoRefreshPendiente>();
                    var existenProductosPendientes = DataManager.RealmInstance.All <ProductoRefreshPendiente>().Where(x => x.ItemPadre == p1.ItemPadre);
                    if (!string.IsNullOrEmpty(item.LoteProduccion))
                    {
                        DataManager.RealmInstance.Write(() =>
                        {
                            foreach (LoteParceladoProducto pLp in lp)
                            {
                                DataManager.RealmInstance.Add(pLp);
                            }
                        });
                    }
                    if (existenProductosPendientes.Any())
                    {
                        if (DataManager.isProductoNuevo)
                        {
                            DataManager.RealmInstance.Write(() =>
                            {
                                foreach (ProductoRefreshPendiente prp in lll)
                                {
                                    DataManager.RealmInstance.Add(prp);
                                }
                            });
                        }
                        else
                        {
                            var ppendientes = existenProductosPendientes.Where(x => x.Correlativo == p1.Correlativo && x.ItemPadre == p1.ItemPadre);
                            if (ppendientes != null)
                            {
                                using (var transitemref = DataManager.RealmInstance.BeginWrite())
                                {
                                    DataManager.RealmInstance.RemoveRange <ProductoRefreshPendiente>(ppendientes);
                                    transitemref.Commit();
                                }
                                DataManager.RealmInstance.Write(() =>
                                {
                                    foreach (ProductoRefreshPendiente prp in lll)
                                    {
                                        DataManager.RealmInstance.Add(prp);
                                    }
                                });
                            }
                            else
                            {
                                DataManager.RealmInstance.Write(() =>
                                {
                                    foreach (ProductoRefreshPendiente prp in lll)
                                    {
                                        DataManager.RealmInstance.Add(prp);
                                    }
                                });
                            }
                        }
                    }
                    else
                    {
                        DataManager.RealmInstance.Write(() =>
                        {
                            foreach (ProductoRefreshPendiente prp in lll)
                            {
                                DataManager.RealmInstance.Add(prp);
                            }
                        });
                    }
                }
                else
                {
                    var existenProductosPendientes = DataManager.RealmInstance.All <ProductoRefreshPendiente>().Where(x => x.ItemPadre == item.ItemPadre);
                    if (existenProductosPendientes.ToList().Any())
                    {
                        var productoConsulta  = existenProductosLoteParceladoExacto.LastOrDefault();
                        var pendienteEliminar = DataManager.RealmInstance.All <ProductoRefreshPendiente>().Where(x => x.ItemPadre == productoConsulta.ItemPadre &&
                                                                                                                 x.CantidadUnidades == productoConsulta.CantidadUnidades && x.Comentario == productoConsulta.Comentario &&
                                                                                                                 x.DayOfCharge == productoConsulta.DayOfCharge && x.EtiquetaPropia == productoConsulta.EtiquetaPropia &&
                                                                                                                 x.FechaCreacion == productoConsulta.FechaCreacion &&
                                                                                                                 x.FechaVencimiento == productoConsulta.FechaVencimiento && x.LoteProduccion == productoConsulta.LoteProduccion &&
                                                                                                                 x.NombreDpto == productoConsulta.NombreDpto && x.NombreProducto == productoConsulta.NombreProducto).LastOrDefault();

                        if (!string.IsNullOrEmpty(item.LoteProduccion))
                        {
                            var listaExistenProductosPendientesLoteParcelado = DataManager.RealmInstance.All <ProductoRefreshPendiente>().ToList();
                            var existenProductosPendientesLoteParcelado      = DataManager.RealmInstance.All <ProductoRefreshPendiente>().Where(x => x.ItemPadre == item.ItemPadre && x.Correlativo == pendienteEliminar.Correlativo);
                            using (var transitemref = DataManager.RealmInstance.BeginWrite())
                            {
                                DataManager.RealmInstance.RemoveRange <ProductoRefreshPendiente>(existenProductosPendientesLoteParcelado);
                                transitemref.Commit();
                            }
                        }
                        else
                        {
                            var existenProductosPendientesFechaElaboracion = DataManager.RealmInstance.All <ProductoRefreshPendiente>().Where(x => x.ItemPadre == item.ItemPadre && x.FechaElaboracion == item.FechaElaboracion);
                            using (var transitemref = DataManager.RealmInstance.BeginWrite())
                            {
                                DataManager.RealmInstance.RemoveRange <ProductoRefreshPendiente>(existenProductosPendientesFechaElaboracion);
                                transitemref.Commit();
                            }
                        }
                        GC.Collect();
                    }
                }
            };

            btnEsElMismoProducto.Click += delegate {
                try
                {
                    DataManager.isProductoNuevo = false;
                    DataManager.correlativo     = int.Parse(existenProductosLoteParceladoExacto.LastOrDefault().Correlativo);
                    llBtnAgregarProductoConfirmacion.Visibility = ViewStates.Visible;
                    btnEsUnNuevoProducto.Visibility             = ViewStates.Gone;
                    btnEsElMismoProducto.Visibility             = ViewStates.Gone;
                }
                catch (System.NullReferenceException ex)
                {
                    Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(activity);
                    builder.SetTitle("Productos Refresh");
                    builder.SetIcon(Resource.Mipmap.ic_refresh);
                    builder.SetCancelable(false);
                    builder.SetMessage("El producto no es el mismo, Por favor corrobora que la información de los campos se la misma (Ítem, Cantidad de unidades, Lote, Comentario)");
                    builder.SetPositiveButton("Aceptar", delegate { customDialog.Dismiss(); });
                    builder.Show();
                }
            };

            btnEsUnNuevoProducto.Click += delegate {
                DataManager.isProductoNuevo = true;
                DataManager.correlativo     = int.Parse(existenProductosLoteParceladoCompleta.LastOrDefault().Correlativo) + 1;
                llBtnAgregarProductoConfirmacion.Visibility = ViewStates.Visible;
                btnEsUnNuevoProducto.Visibility             = ViewStates.Gone;
                btnEsElMismoProducto.Visibility             = ViewStates.Gone;
            };

            customDialog.Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
            customDialog.Show();
        }
Exemple #12
0
        static void Main(string[] args)
        {
            // ImageService.GetImages();

            AnalyticService.DetectFaceExtract().Wait();
        }
        /// <summary>
        /// Views the formulario user.
        /// </summary>
        /// <param name="activity">Activity.</param>
        public static void viewFormularioUser(Activity activity)
        {
            customDialog = new Dialog(activity, Resource.Style.Theme_Dialog_Translucent);
            var ha = (HomeAgregaProductoActivity)activity;

            customDialog.SetCancelable(false);
            customDialog.SetContentView(Resource.Layout.ingreso_usuarioresponsable_dialog);
            EditText     txtNombreUsuario   = customDialog.FindViewById <EditText>(Resource.Id.txtUser);
            TextView     lblMensajeError    = customDialog.FindViewById <TextView>(Resource.Id.lblMensajeError);
            TextView     lblBtnIngresarUser = customDialog.FindViewById <TextView>(Resource.Id.lblBtnIngresarUser);
            LinearLayout llBtnIngresarUser  = customDialog.FindViewById <LinearLayout>(Resource.Id.llBtnIngresarUser);

            if (!string.IsNullOrEmpty(DataManager.nombreUsuario))
            {
                txtNombreUsuario.Text     = DataManager.nombreUsuario;
                llBtnIngresarUser.Enabled = true;
                llBtnIngresarUser.SetBackgroundResource(Resource.Drawable.cssBotonAgregarProducto);
            }
            else
            {
                txtNombreUsuario.Text     = string.Empty;
                llBtnIngresarUser.Enabled = false;
                llBtnIngresarUser.SetBackgroundResource(Resource.Drawable.cssBotonBloqueado);
            }

            txtNombreUsuario.TextChanged += delegate
            {
                if (txtNombreUsuario.Text.Trim().Length >= 5 || txtNombreUsuario.Text.Trim().Length == 0)
                {
                    lblMensajeError.Text = string.Empty;
                }
                if (!string.IsNullOrEmpty(txtNombreUsuario.Text))
                {
                    llBtnIngresarUser.Enabled = true;
                    llBtnIngresarUser.SetBackgroundResource(Resource.Drawable.cssBotonAgregarProducto);
                }
                else
                {
                    llBtnIngresarUser.Enabled = false;
                    llBtnIngresarUser.SetBackgroundResource(Resource.Drawable.cssBotonBloqueado);
                }
            };

            llBtnIngresarUser.Click += delegate
            {
                if (txtNombreUsuario.Text.Trim().Length >= 5)
                {
                    DataManager.nombreUsuario = txtNombreUsuario.Text.Trim();
                    ha.nombreUsuarioToolbar();
                    customDialog.Dismiss();
                    AnalyticService.TrackAnalytics("Ingreso Usuario", new Dictionary <string, string> {
                        { "Category", "Usuario " + DataManager.nombreUsuario + " agregado, el dia " + DateTime.Now },
                        { "Action", "click llBtnIngresarUser" }
                    });
                }
                else
                {
                    lblMensajeError.Text = "Error al ingresar los datos";
                    AnalyticService.TrackAnalytics("Error ngreso Usuario", new Dictionary <string, string> {
                        { "Category", "Usuario " + txtNombreUsuario.Text + " agregado, el dia " + DateTime.Now },
                        { "Action", "click llBtnIngresarUser" }
                    });
                }
            };
            txtNombreUsuario.ImeOptions = ImeAction.Done;
            customDialog.Window.SetStatusBarColor(Android.Graphics.Color.Transparent);
            customDialog.Show();
        }
        /// <summary>
        /// Buttons the agregar producto click.
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        private async void BtnAgregarProducto_Click(object sender, EventArgs e)
        {
            try
            {
                estadoBloqueado(false);
                imgLoadingBtnAgregaPruducto.Visibility = ViewStates.Visible;
                lblBtnAgregarProducto.Visibility       = ViewStates.Gone;

                if (!spiItemsProductos.SelectedItem.ToString().Equals("Item") &&
                    !spiProcedenciaProducto.SelectedItem.ToString().Equals("Procedencia") &&
                    !spiFrigorificoProducto.SelectedItem.ToString().Equals("Frigorifico") &&
                    !string.IsNullOrEmpty(txtFechaFaenaProducto.Text) &&
                    !string.IsNullOrEmpty(txtPesoNetoProducto.Text) && txtPesoNetoProducto.Text != "." && Convert.ToDouble(txtPesoNetoProducto.Text) > 0)
                {
                    if (Convert.ToDecimal(txtPesoNetoProducto.Text, CultureInfo.InvariantCulture) <= 100)
                    {
                        var pesoKG              = txtPesoNetoProducto.Text.Replace(",", ".").Trim();
                        var nombreFrigorifico   = spiFrigorificoProducto.SelectedItem.ToString();
                        var nombreProcedencia   = spiProcedenciaProducto.SelectedItem.ToString();
                        var nombreProducto      = spiItemsProductos.SelectedItem.ToString().Trim();
                        var nombreProductoClean = nombreProducto.Split('-')[1].Trim();
                        var codItem             = nombreProducto.Split('-')[0].Trim();
                        var procedenciaOrigen   = dataProcedencia.Where(x => x.NombreProcedencia == nombreProcedencia).FirstOrDefault().CodigoProcedencia;
                        var codFrigorifico      = dataFrigorifico.Where(x => x.NombreFrigorifico == nombreFrigorifico).FirstOrDefault().CodigoFrigorifico;
                        var fechaLectura        = String.Format("{0:yyyyMMdd HH:mm:ss}", DateTime.Now);
                        var fechaInventario     = String.Format("{0:yyyyMMdd}", DateTime.Now);
                        var pesoNetoConvert     = Convert.ToInt32(Convert.ToDecimal(pesoKG, CultureInfo.InvariantCulture) * 100);
                        if (DataManager.imageData != null)
                        {
                            Bitmap newImg = MediaStore.Images.Media.GetBitmap(ContentResolver, DataManager.imageData);

                            var streamImg = new MemoryStream();
                            newImg.Compress(Bitmap.CompressFormat.Jpeg, 30, streamImg); //calidad al 30%
                            bitmapData    = streamImg.ToArray();
                            encodeImage   = Convert.ToBase64String(bitmapData);         // Base64.EncodeToString(bitmapData, Base64.Default);
                            compressImage = CompressImageString.CompressString(encodeImage);
                        }

                        byte[] imagen = bitmapData;
                        IngresaProcesaBarrasTabletRequest item = new IngresaProcesaBarrasTabletRequest
                        {
                            Item                = codItem,
                            Local               = idSucursal,
                            Procedencia         = procedenciaOrigen,
                            OrigenFrigorifico   = codFrigorifico,
                            CertificadoEmbarque = Constantes.ITEM_CERTIFICADO_EMBARQUE,
                            FechaFaena          = fechaFaena,
                            PesaNeto            = pesoNetoConvert.ToString(),
                            PesaBruto           = Constantes.PESO_BRUTO,
                            Responsable         = DataManager.nombreUsuario,
                            Image               = imagen
                        };
                        string postData       = JsonConvert.SerializeObject(item);
                        var    itemInventario = await ServiceDelegate.Instance.IngresoItemImage(JObject.Parse(postData));

                        if (itemInventario.Success)
                        {
                            try
                            {
                                var codResponse = (int)itemInventario.Response;
                                if (codResponse == 2)
                                {
                                    imgLoadingBtnAgregaPruducto.Visibility = ViewStates.Gone;
                                    lblBtnAgregarProducto.Visibility       = ViewStates.Visible;
                                    Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(this);
                                    builder.SetTitle("Trazabilidad de carnes");
                                    builder.SetIcon(Resource.Mipmap.ic_trazabilidad);
                                    builder.SetCancelable(false);
                                    builder.SetMessage("No existe item padre, para " + item.Item + " - " + nombreProductoClean);
                                    builder.SetPositiveButton("Aceptar", delegate {
                                        Intent intentAlHomeAgregaProductoActivity = new Intent(this, typeof(HomeAgregaProductoActivity));
                                        StartActivity(intentAlHomeAgregaProductoActivity);
                                    });
                                    builder.Show();
                                    DataManager.estadoBusquedaProducto = string.Empty;
                                    AnalyticService.TrackAnalytics("Agregar producto app", new Dictionary <string, string> {
                                        { "Category", "Codigo retorno success false" },
                                        { "Action", "codigo 500 no se ingresa producto ya que no existe item padre para item " + item.Item + " con codigo balanza " + txtCodigoBlanza.Text }
                                    });
                                }
                                else
                                {
                                    imgLoadingBtnAgregaPruducto.Visibility = ViewStates.Gone;
                                    lblBtnAgregarProducto.Visibility       = ViewStates.Visible;
                                    DataManager.estadoProductoAgregado     = true;
                                    DataManager.nombreProductoAgregado     = nombreProductoClean;
                                    DataManager.kgProductoAgregado         = pesoKG;
                                    Intent intentAlHomeAgregaProductoActivity = new Intent(this, typeof(HomeAgregaProductoActivity));
                                    StartActivity(intentAlHomeAgregaProductoActivity);
                                    DataManager.estadoBusquedaProducto = string.Empty;
                                    AnalyticService.TrackAnalytics("Agregar producto app", new Dictionary <string, string> {
                                        { "Category", "Codigo retorno success true" },
                                        { "Action", "producto " + nombreProducto + " agregado, con " + pesoNetoConvert + "kilos. En el servicio" }
                                    });
                                }
                            }
                            catch (Exception ex)
                            {
                                Log.Info("BtnAgregarProducto_Click", ex.Message);
                                imgLoadingBtnAgregaPruducto.Visibility = ViewStates.Gone;
                                lblBtnAgregarProducto.Visibility       = ViewStates.Visible;
                                DataManager.estadoProductoAgregado     = true;
                                DataManager.nombreProductoAgregado     = nombreProductoClean;
                                DataManager.kgProductoAgregado         = pesoKG;
                                Intent intentAlHomeAgregaProductoActivity = new Intent(this, typeof(HomeAgregaProductoActivity));
                                StartActivity(intentAlHomeAgregaProductoActivity);
                                DataManager.estadoBusquedaProducto = string.Empty;
                                AnalyticService.TrackAnalytics("Agregar producto app", new Dictionary <string, string> {
                                    { "Category", "Codigo retorno success true" },
                                    { "Action", "producto " + nombreProducto + " agregado, con " + pesoNetoConvert + "kilos. En el servicio" }
                                });
                            }
                        }
                        else
                        {
                            DataManager.RealmInstance.Write(() =>
                            {
                                DataManager.RealmInstance.Add(item);
                            });
                            imgLoadingBtnAgregaPruducto.Visibility = ViewStates.Gone;
                            lblBtnAgregarProducto.Visibility       = ViewStates.Visible;
                            DataManager.estadoProductoAgregado     = false;
                            Intent intentAlHomeAgregaProductoActivity = new Intent(this, typeof(HomeAgregaProductoActivity));
                            StartActivity(intentAlHomeAgregaProductoActivity);
                            DataManager.estadoBusquedaProducto = string.Empty;

                            AnalyticService.TrackAnalytics("Agregar producto app", new Dictionary <string, string> {
                                { "Category", "Codigo retorno success true" },
                                { "Action", "producto " + nombreProductoClean + " agregado, con " + pesoKG + "kilos. En el bd local" }
                            });
                        }
                    }
                    else
                    {
                        imgLoadingBtnAgregaPruducto.Visibility = ViewStates.Gone;
                        lblBtnAgregarProducto.Visibility       = ViewStates.Visible;
                        Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(this);
                        builder.SetTitle("Trazabilidad de carnes");
                        builder.SetCancelable(false);
                        builder.SetIcon(Resource.Mipmap.ic_trazabilidad);
                        builder.SetMessage("El peso neto del producto, debe ser menor o igual a 100 kg");
                        builder.SetPositiveButton("Aceptar", delegate {
                            estadoBloqueado(true);
                        });
                        builder.Show();
                    }
                }
                else
                {
                    imgLoadingBtnAgregaPruducto.Visibility = ViewStates.Gone;
                    lblBtnAgregarProducto.Visibility       = ViewStates.Visible;
                    Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(this);
                    builder.SetTitle("Trazabilidad de carnes");
                    builder.SetCancelable(false);
                    builder.SetIcon(Resource.Mipmap.ic_trazabilidad);
                    builder.SetMessage("Debes ingresar la información requerida en todos los campos");
                    builder.SetPositiveButton("Aceptar", delegate {
                        estadoBloqueado(true);
                    });
                    builder.Show();
                }
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
            }
        }