public ActionResult Edit()//IList<string> entity
        {
            UpdateAssetInput viewModel = new UpdateAssetInput();

            try
            {
                viewModel = JsonConvert.DeserializeObject <UpdateAssetInput>(System.Web.HttpContext.Current.Request["AssetsDataSection"]);
                var imageToUpload = System.Web.HttpContext.Current.Request.Files["AssetsImagesSection"];
                var guidid        = viewModel.Id;
                var detalles      = _assetService.Get(guidid);
                viewModel.NowDate    = _date.Now;
                viewModel.Categories = _assetService.GetAllCategories(_currentUser.CompanyName);
                if (ModelState.IsValid)
                {
                    /* if (string.IsNullOrEmpty(viewModel.Code))
                     * {
                     *   ModelState.AddModelError("Code", "* Requerido");
                     *   viewModel.ErrorCode = ErrorCodeHelper.Error;
                     *   viewModel.ErrorDescription = "El código es requerido.";
                     *   viewModel.NowDate = _date.Now;
                     *   return PartialView("_edit", viewModel);
                     * }
                     * if (string.IsNullOrEmpty(viewModel.Name))
                     * {
                     *   ModelState.AddModelError("Name", "* Requerido");
                     *   viewModel.ErrorCode = ErrorCodeHelper.Error;
                     *   viewModel.ErrorDescription = "El nombre es requerido.";
                     *   viewModel.NowDate = _date.Now;
                     *   return PartialView("_edit", viewModel);
                     * }
                     * if (viewModel.Price <= 0)
                     * {
                     *   ModelState.AddModelError("Price", "* Requerido.");
                     *   viewModel.ErrorCode = ErrorCodeHelper.Error;
                     *   viewModel.ErrorDescription = "El precio debe ser mayor que 0.";
                     *   viewModel.NowDate = _date.Now;
                     *   return PartialView("_edit", viewModel);
                     * }
                     * if (viewModel.DepreciationMonthsQty <= 0)
                     * {
                     *   ModelState.AddModelError("DepreciationMonthsQty", "* Requerido.");
                     *   viewModel.ErrorCode = ErrorCodeHelper.Error;
                     *   viewModel.ErrorDescription = "La cantidad de meses depreciables debe ser mayor que 0.";
                     *   viewModel.NowDate = _date.Now;
                     *   return PartialView("_edit", viewModel);
                     * }*/
                    viewModel.MensualDepreciation = detalles.MensualDepreciation;
                    viewModel.CostinBooks         = detalles.CostinBooks;
                    if (imageToUpload != null)
                    {
                        viewModel.Image = imageToUpload;
                        if (!CheckImageFormat.IsImage(imageToUpload))
                        {
                            viewModel.ErrorCode        = ErrorCodeHelper.Error;
                            viewModel.ErrorDescription = "Error al cargar la imagen seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg, *.PDF";
                            return(PartialView("_edit", viewModel));
                        }
                    }

                    viewModel.LastModifierUserId = _currentUser.CurrentUserId;
                    viewModel.CompanyName        = _currentUser.CompanyName;
                    _assetService.Update(viewModel);
                    viewModel.CustomFieldsDto  = _assetService.GetEditCustomFields(viewModel.Id, _currentUser.CompanyName);
                    viewModel.ErrorCode        = ErrorCodeHelper.Ok;
                    viewModel.NowDate          = _date.Now;
                    viewModel.ErrorDescription = "¡Artículo actualizado exitosamente!";
                    return(PartialView("_edit", viewModel));
                }
                viewModel.ErrorCode        = ErrorCodeHelper.Error;
                viewModel.ErrorDescription = "Error en los datos.";
                viewModel.NowDate          = _date.Now;
                return(PartialView("_edit", viewModel));
            }
            catch (Exception e)
            {
                viewModel.Categories       = _assetService.GetAllCategories(_currentUser.CompanyName);
                viewModel.ErrorCode        = ErrorCodeHelper.Error;
                viewModel.ErrorDescription = "Error al obtener datos.";
                viewModel.NowDate          = _date.Now;
                return(PartialView("_edit", viewModel));
            }
        }
        public ActionResult Edit()//IList<string> entity
        {
            CreateInRequestInput viewModel = new CreateInRequestInput();

            viewModel.IsEdit = true;
            try
            {
                if (viewModel.Status == InRequestStatus.Processed || viewModel.Status == InRequestStatus.Closed)
                {
                    return(Json(new { ErrorCode = -1, ErrorDescription = "Refresque la pagina y verifique los datos, no puede modificar una solicitud ya procesada" }));
                }
                else
                {
                    viewModel = JsonConvert.DeserializeObject <CreateInRequestInput>(System.Web.HttpContext.Current.Request["InRequestDataSection"]);
                    var imageToUpload1 = System.Web.HttpContext.Current.Request.Files["InRequestImagesSection1"];
                    var imageToUpload2 = System.Web.HttpContext.Current.Request.Files["InRequestImagesSection2"];

                    //if (viewModel.RequestDocumentNumber == String.Empty || viewModel.RequestDocumentNumber == null)
                    //{ return Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener un numero de solicitud fisica." }); }

                    if (viewModel.DetailsRequest == null || !viewModel.DetailsRequest.Any())
                    {
                        return(Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener algún detalle de artículos." }));
                    }

                    //if (viewModel.PurchaseOrderNumber == String.Empty || viewModel.PurchaseOrderNumber == null)
                    //{ return Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener algún número de orden de compra." }); }

                    if (viewModel.PersonInCharge == String.Empty || viewModel.PersonInCharge == null)
                    {
                        return(Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener algún responsable." }));
                    }

                    if (viewModel.CellarId == Guid.Empty)
                    {
                        return(Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe llevar una Ubicación." }));
                    }

                    if (ModelState.IsValid)
                    {
                        if (imageToUpload1 != null)
                        {
                            viewModel.Image1 = imageToUpload1;
                            if (!CheckImageFormat.IsImage(imageToUpload1))
                            {
                                //viewModel.ErrorCode = ErrorCodeHelper.Error;
                                //viewModel.ErrorDescription = "Error al cargar la imagen 1 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg";
                                return(Json(new { ErrorCode = ErrorCodeHelper.Error, ErrorDescription = "Error al cargar la imagen 1 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg,*.PDF" }));
                            }
                        }

                        if (imageToUpload2 != null)
                        {
                            viewModel.Image2 = imageToUpload2;
                            if (!CheckImageFormat.IsImage(imageToUpload2))
                            {
                                //viewModel.ErrorCode = ErrorCodeHelper.Error;
                                //viewModel.ErrorDescription = "Error al cargar la imagen 1 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg";
                                return(Json(new { ErrorCode = ErrorCodeHelper.Error, ErrorDescription = "Error al cargar la imagen 2 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg,*.PDF" }));
                            }
                        }

                        if (viewModel.Image1 == null && viewModel.Image2 == null)
                        {
                            return(Json(new { ErrorCode = ErrorCodeHelper.Error, ErrorDescription = "La solicitud para ser entregada debe tener almenos una imagen adjunta." }));
                        }

                        viewModel.CompanyName = _currentUser.CompanyName;
                        _inRequestService.Update(viewModel);
                        return(Json(new { ErrorCode = 1, ErrorDescription = "Solicitud guardada exitosamente." }));
                    }

                    return(Json(new { ErrorCode = -1, ErrorDescription = "Error al editar la solicitud, verifique los datos." }));
                }
            }

            catch (Exception e)
            {
                return(Json(new { ErrorCode = -1, ErrorDescription = e.Message }));
            }
        }
        public ActionResult Create(IList <string> entity)
        {
            CreateAssetInput viewModel = new CreateAssetInput();

            try
            {
                viewModel = JsonConvert.DeserializeObject <CreateAssetInput>(System.Web.HttpContext.Current.Request["AssetsDataSection"]);
                var imageToUpload = System.Web.HttpContext.Current.Request.Files["AssetsImagesSection"];

                if (ModelState.IsValid)
                {
                    viewModel.Categories = _assetService.GetAllCategories(_currentUser.CompanyName);

                    if (string.IsNullOrEmpty(viewModel.Code))
                    {
                        ModelState.AddModelError("Code", "*Requerido");
                        viewModel.ErrorCode        = ErrorCodeHelper.Error;
                        viewModel.ErrorDescription = "El código es requerido.";
                        return(PartialView("_create", viewModel));
                    }
                    if (string.IsNullOrEmpty(viewModel.Name))
                    {
                        ModelState.AddModelError("Name", "*Requerido");
                        viewModel.ErrorCode        = ErrorCodeHelper.Error;
                        viewModel.ErrorDescription = "El nombre es requerido.";
                        return(PartialView("_create", viewModel));
                    }
                    if (viewModel.Price <= 0)
                    {
                        ModelState.AddModelError("Price", "*Requerido.");
                        viewModel.ErrorCode        = ErrorCodeHelper.Error;
                        viewModel.ErrorDescription = "El precio debe ser mayor que 0.";
                        return(PartialView("_create", viewModel));
                    }
                    if (viewModel.DepreciationMonthsQty <= 0)
                    {
                        ModelState.AddModelError("DepreciationMonthsQty", "*Requerido.");
                        viewModel.ErrorCode        = ErrorCodeHelper.Error;
                        viewModel.ErrorDescription = "La cantidad de meses depreciables debe ser mayor que 0.";
                        return(PartialView("_create", viewModel));
                    }
                    if (viewModel.AdmissionDate > _date.Now)
                    {
                        ModelState.AddModelError("AdmissionDate", "* Error.");
                        viewModel.ErrorCode        = ErrorCodeHelper.Error;
                        viewModel.ErrorDescription = "La fecha de admisión no puede ser mayor a la fecha de hoy.";
                        return(PartialView("_create", viewModel));
                    }

                    if (imageToUpload != null)
                    {
                        viewModel.Image = imageToUpload;
                        if (!CheckImageFormat.IsImage(imageToUpload))
                        {
                            viewModel.ErrorCode        = ErrorCodeHelper.Error;
                            viewModel.ErrorDescription = "Error al cargar la imagen seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg, *.PDF";
                            return(PartialView("_create", viewModel));
                        }
                    }

                    viewModel.CreatorGuidId = _currentUser.CurrentUserId;
                    viewModel.CompanyName   = _currentUser.CompanyName;
                    _assetService.Create(viewModel);
                    ModelState.Clear();
                    var newVm = new CreateAssetInput();
                    newVm.Categories       = _assetService.GetAllCategories(_currentUser.CompanyName);
                    newVm.AdmissionDate    = DateTime.Now;
                    newVm.ErrorCode        = ErrorCodeHelper.Ok;
                    newVm.ErrorDescription = "¡Artículo guardado exitosamente!";
                    return(PartialView("_create", newVm));
                }
                viewModel.Categories       = _assetService.GetAllCategories(_currentUser.CompanyName);
                viewModel.ErrorCode        = ErrorCodeHelper.Error;
                viewModel.ErrorDescription = "Error al intentar guardar los datos.";
                return(PartialView("_create", viewModel));
            }
            catch (Exception e)
            {
                viewModel.Categories       = _assetService.GetAllCategories(_currentUser.CompanyName);
                viewModel.ErrorCode        = ErrorCodeHelper.Error;
                viewModel.ErrorDescription = e.Message;
                return(PartialView("_create", viewModel));
            }
        }
        public ActionResult Create()//IList<string> entity
        {
            CreateInRequestInput viewModel = new CreateInRequestInput();

            try
            {
                viewModel = JsonConvert.DeserializeObject <CreateInRequestInput>(System.Web.HttpContext.Current.Request["InRequestDataSection"]);
                var imageToUpload1 = System.Web.HttpContext.Current.Request.Files["InRequestImagesSection1"];
                var imageToUpload2 = System.Web.HttpContext.Current.Request.Files["InRequestImagesSection2"];
                var signature      = System.Web.HttpContext.Current.Request.Form["SignatureStr"];

                viewModel.SignatureData = signature;
                // _currentUser.
                //if (viewModel.RequestDocumentNumber == String.Empty || viewModel.RequestDocumentNumber == null)
                //{ return Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener un numero de solicitud fisica." }); }

                if (viewModel.DetailsRequest == null || !viewModel.DetailsRequest.Any())
                {
                    return(Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener algún detalle de artículos." }));
                }

                //if (viewModel.PurchaseOrderNumber == String.Empty || viewModel.PurchaseOrderNumber == null)
                //{ return Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener algún número de orden de compra." }); }

                if (viewModel.PersonInCharge == String.Empty || viewModel.PersonInCharge == null)
                {
                    return(Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe tener algún responsable." }));
                }

                if (viewModel.CellarId == Guid.Empty)
                {
                    return(Json(new { ErrorCode = -1, ErrorDescription = "La solicitud debe llevar una Ubicación." }));
                }

                if (ModelState.IsValid)
                {
                    if (imageToUpload1 != null)
                    {
                        viewModel.Image1 = imageToUpload1;
                        if (!CheckImageFormat.IsImage(imageToUpload1))
                        {
                            //viewModel.ErrorCode = ErrorCodeHelper.Error;
                            //viewModel.ErrorDescription = "Error al cargar la imagen 1 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg";
                            return(Json(new { ErrorCode = ErrorCodeHelper.Error, ErrorDescription = "Error al cargar la imagen 1 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg,*.PDF" }));
                        }
                    }

                    if (imageToUpload2 != null)
                    {
                        viewModel.Image2 = imageToUpload2;
                        if (!CheckImageFormat.IsImage(imageToUpload2))
                        {
                            //viewModel.ErrorCode = ErrorCodeHelper.Error;
                            //viewModel.ErrorDescription = "Error al cargar la imagen 1 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg";
                            return(Json(new { ErrorCode = ErrorCodeHelper.Error, ErrorDescription = "Error al cargar la imagen 2 seleccionada, la extensión debe ser de tipo *.jpg, *.png, *.gif, *.jpeg,*.PDF" }));
                        }
                    }

                    viewModel.CreatorGuidId = _currentUser.CurrentUserId;
                    viewModel.CompanyName   = _currentUser.CompanyName;
                    try
                    {
                        _inRequestService.Create(viewModel);
                    }
                    catch (Exception ex)
                    {
                        return(Json(new { ErrorCode = -1, ErrorDescription = "Error al guardar la solicitud, verifique los datos." }));
                    }

                    ModelState.Clear();
                    return(Json(new { ErrorCode = 1, ErrorDescription = "Orden de Compra guardada exitosamente." }));
                }
                return(Json(new { ErrorCode = -1, ErrorDescription = "Error al guardar la solicitud, verifique los datos." }));
            }
            catch (Exception e)
            {
                return(Json(new { ErrorCode = -1, ErrorDescription = e.Message }));
            }
        }