/// <summary>
 /// Deprecated Method for adding a new object to the ParametrosPayCenters EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToParametrosPayCenters(ParametrosPayCenter parametrosPayCenter)
 {
     base.AddObject("ParametrosPayCenters", parametrosPayCenter);
 }
 /// <summary>
 /// Create a new ParametrosPayCenter object.
 /// </summary>
 /// <param name="payCenterId">Initial value of the PayCenterId property.</param>
 /// <param name="mostrarComision">Initial value of the MostrarComision property.</param>
 /// <param name="enviarEmailCliente">Initial value of the EnviarEmailCliente property.</param>
 /// <param name="enviarEmailPayCenter">Initial value of the EnviarEmailPayCenter property.</param>
 /// <param name="mostrarLogoPayCenter">Initial value of the MostrarLogoPayCenter property.</param>
 /// <param name="fechaDepositoRequired">Initial value of the FechaDepositoRequired property.</param>
 public static ParametrosPayCenter CreateParametrosPayCenter(global::System.Int32 payCenterId, global::System.Boolean mostrarComision, global::System.Boolean enviarEmailCliente, global::System.Boolean enviarEmailPayCenter, global::System.Boolean mostrarLogoPayCenter, global::System.Boolean fechaDepositoRequired)
 {
     ParametrosPayCenter parametrosPayCenter = new ParametrosPayCenter();
     parametrosPayCenter.PayCenterId = payCenterId;
     parametrosPayCenter.MostrarComision = mostrarComision;
     parametrosPayCenter.EnviarEmailCliente = enviarEmailCliente;
     parametrosPayCenter.EnviarEmailPayCenter = enviarEmailPayCenter;
     parametrosPayCenter.MostrarLogoPayCenter = mostrarLogoPayCenter;
     parametrosPayCenter.FechaDepositoRequired = fechaDepositoRequired;
     return parametrosPayCenter;
 }
        public ActionResult Edit(PayCenterVM paycenterVM)
        {
            //Esto es para que no me marque requerido al validar cuando es actualización
            ModelState.Remove("Password");
            ModelState.Remove("RepeatPassword");
            ModelState.Remove("UserName");

            if (ModelState.IsValid)
            {
                //<author>Moisés Cauich</author>
                //<comments>Ya se traen los valores correspondientes del view.</comments>
                //<before>
                //paycenterVM.Comprobante = "";
                //paycenterVM.IFE = "";
                //</before>
                //<after>

                //<author>Moisés Cauich</author>
                //<comments>Se corrigieron las relaciones en el Entity Model</comments>
                //<before>
                //paycenterVM.UsuarioId = 1;
                //if (paycenterVM.ProspectoId == 0)
                //{
                //    paycenterVM.ProspectoId = 1;
                //}
                //</before>
                //<after />

                //Esto es para cuando se edita los datos de un paycenter que no tiene imagenes, no marque error
                if (paycenterVM.IFE == null)
                {
                    paycenterVM.IFE = string.Empty;
                }
                if (paycenterVM.Comprobante == null)
                {
                    paycenterVM.Comprobante = string.Empty;
                }

                //llenar los campos faltantes si estan nulos
                ValidaCapturaParcial(ref paycenterVM);

                Succeed = true;

                //Validar los datos necesarios para activar el usuario
                if (paycenterVM.Activo)
                {
                    Succeed = ValidaActivacion(ref paycenterVM);
                }

                //Validar si existe el usuario si el paycenter está siendo editado y actualizarlo
                if (Succeed)
                {
                    AspNetMembershipProviderWrapper membership = new AspNetMembershipProviderWrapper();
                    if (!string.IsNullOrWhiteSpace(paycenterVM.UserName))
                    {
                        try
                        {
                            MembershipUser usuario = membership.Get(paycenterVM.UserName);

                            if (usuario != null)
                            {
                                usuario.Email = paycenterVM.Email;
                                usuario.IsApproved = paycenterVM.Activo;
                                membership.Update(usuario);
                            }
                            else
                            {
                                Succeed = false;
                                AddValidationMessage(enumMessageType.UnhandledException ,"No se encontró el usuario del PayCenter.");
                            }
                        }
                        catch (Exception ex)
                        {
                            Succeed = false;
                            AddValidationMessage(enumMessageType.UnhandledException ,"Se ha producido un error al actualizar el usuario del PayCenter. " + ex.Message);
                        }
                    }
                    else if (paycenterVM.Activo)
                    {
                        Succeed = false;
                        AddValidationMessage(enumMessageType.UnhandledException ,"No se ha creado el usuario del PayCenter, no se puede activar. desmarque la casilla de activo y guarde.");
                    }

                    if (Succeed)
                    {
                        PayCenter paycenter = repository.LoadById(paycenterVM.PayCenterId);
                        Mapper.Map(paycenterVM, paycenter);
                        if (paycenterVM.PayCenterPadreId <= 0)
                        {
                            paycenter.PayCenterPadre = null;
                        }

                        //Agregar valor del parámetro máximo a financiar
                        if (paycenter.Parametros != null)
                        {
                            paycenter.Parametros.MaximoAFinanciar = Convert.ToDecimal(paycenterVM.MaximoAFinanciar);
                        }
                        else
                        {
                            ParametrosPayCenter parametros = new ParametrosPayCenter() {
                                PayCenterId = paycenterVM.PayCenterId,
                                MaximoAFinanciar = Convert.ToDecimal(paycenterVM.MaximoAFinanciar),
                            };
                            repository.context.ParametrosPayCenters.AddObject(parametros);
                        }

                        repository.Save();

                        AddValidationMessage(enumMessageType.Succeed ,"El PayCenter se ha actualizado con éxito.");
                    }
                }
                else
                {
                    AddValidationMessage(enumMessageType.UnhandledException ,"Es necesario capturar todos los datos para activar al PayCenter. capture los datos faltantes o desmarque la casilla de activo y guarde.");
                }
                //PayCenter paycenter = repository.LoadById(paycenterVM.PayCenterId);
                //Mapper.Map(paycenterVM, paycenter);
                //Mapper.Map(paycenterVM.Cuentas, paycenter.Cuentas);
                //Mapper.Map(paycenterVM.Abonos, paycenter.Abonos);
                //repository.Save();
                //return RedirectToAction("Index");
            }

            //ViewBag.ProspectoId = new SelectList(repository.LoadProspectos(), "ProspectoId", "Email", paycenterVM.ProspectoId);
            //ViewBag.UsuarioId = new SelectList(repository.LoadUsuarios(), "UsuarioId", "Email", paycenterVM.UsuarioId);
            return View(paycenterVM);
        }