public string Activate(int id, string accion) { PayCenter paycenter = repository.LoadById(id); //Si la la acción solicitada es activar, validar que el paycenter tenga todos los campos necesarios if (accion == "Activar") { if (!ValidaActivacion(paycenter)) { return "El PayCenter no tiene capturado todos los datos necesarios para su activación."; } paycenter.Activo = true; } else { paycenter.Activo = false; } //Actualizar el usuario de membership AspNetMembershipProviderWrapper membership = new AspNetMembershipProviderWrapper(); if (!string.IsNullOrWhiteSpace(paycenter.UserName)) { try { MembershipUser usuario = membership.Get(paycenter.UserName); if (usuario != null) { usuario.IsApproved = paycenter.Activo; membership.Update(usuario); } else { return "No se encontró el usuario del PayCenter, no se puede ejecutar la acción."; } } catch { return "Se ha producido un error al actualizar el usuario del PayCenter, no se pudo ejecutar la acción."; } } else { return "No se ha creado el usuario del PayCenter, no se puede ejecutar la acción."; } repository.Save(); if (paycenter.Activo) { return "El PayCenter se ha activado con éxito."; } else { return "El PayCenter se ha desactivado con éxito."; } }
public UserAdministrationController(AspNetMembershipProviderWrapper membership, IRolesService roles, ISmtpClient smtp) : this(membership.Settings, membership, membership, roles, smtp) { }
public ActionResult Registrar(PayCenterVM paycenterVM) { Succeed = true; //Esto es para que no me marque requerido al validar cuando es actualización if (paycenterVM.PayCenterId > 0) { ModelState.Remove("Password"); ModelState.Remove("RepeatPassword"); ModelState.Remove("UserName"); } if (ModelState.IsValid) { if (paycenterVM.IFE == null) { paycenterVM.IFE = string.Empty; } if (paycenterVM.Comprobante == null) { paycenterVM.Comprobante = string.Empty; } paycenterVM.ThumbnailIFE = paycenterVM.IFE.Replace("UploadImages", "UploadImages/Thumbnails"); paycenterVM.ThumbnailComprobante = paycenterVM.Comprobante.Replace("UploadImages", "UploadImages/Thumbnails"); //llenar los campos faltantes si estan nulos ValidaCapturaParcial(ref paycenterVM); #region "crear prospecto comentado" ////Crear prospecto o cargar el prospecto relacionado //if (paycenterVM.ProspectoId > 0) //{ // //ProspectosRepository repositoryProspecto = new ProspectosRepository(); // //Prospecto prospecto = repositoryProspecto.LoadById(paycenterVM.ProspectoId); // //paycenterVM.Prospecto = prospecto; //} //else //{ // Prospecto prospecto = new Prospecto() { // Baja=false, // Celular=paycenterVM.Celular, // Comentario=string.Empty, // Email=paycenterVM.Email, // Empresa=paycenterVM.Empresa, // FechaCreacion=paycenterVM.FechaCreacion, // Nombre=paycenterVM.Nombre, // Telefono=paycenterVM.Telefono, // ProspectoId=0 // }; // paycenterVM.Prospecto = prospecto; //} #endregion //Validar si existe el usuario si el paycenter está siendo editado y actualizarlo AspNetMembershipProviderWrapper membership = new AspNetMembershipProviderWrapper(); if (paycenterVM.PayCenterId > 0 && !string.IsNullOrWhiteSpace(paycenterVM.UserName)) //&& !string.IsNullOrWhiteSpace(paycenterVM.Password)) { try { MembershipUser usuario = membership.Get(paycenterVM.UserName); if (usuario != null) { if (!usuario.IsApproved) { usuario.Email = paycenterVM.Email; membership.Update(usuario); //membership.ChangePassword(usuario, paycenterVM.Password); } else { paycenterVM.Activo = true; Succeed = false; AddValidationMessage(enumMessageType.UnhandledException, "El PayCenter ya se encuentra aprobado y activo, no es posible ser modificado por el Prospecto. Por favor, ingresa al sistema con tu usuario y contraseña."); } } 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 (!(string.IsNullOrWhiteSpace(paycenterVM.UserName) || string.IsNullOrWhiteSpace(paycenterVM.Password))) { try { var user = membership.Create(paycenterVM.UserName, paycenterVM.Password, paycenterVM.Email, null, null, false); AspNetRoleProviderWrapper membershipRole = new AspNetRoleProviderWrapper(); membershipRole.AddToRole(user, "paycenter"); } catch (Exception ex) { Succeed = false; AddValidationMessage(enumMessageType.UnhandledException, "Se ha producido un error al crear el usuario del PayCenter. " + ex.Message); } } if (Succeed) { PayCenter paycenter; bool modificando = paycenterVM.PayCenterId > 0; if (paycenterVM.PayCenterId > 0) { paycenter = repository.LoadById(paycenterVM.PayCenterId); paycenterVM.MaximoAFinanciar = paycenter.Parametros != null && paycenter.Parametros.MaximoAFinanciar != null ? paycenter.Parametros.MaximoAFinanciar.ToString() : string.Empty; Mapper.Map(paycenterVM, paycenter); } else { paycenter = new PayCenter(); Mapper.Map(paycenterVM, paycenter); if (paycenterVM.PayCenterPadreId == 0) { paycenter.PayCenterPadreId = null; paycenter.PayCenterPadre = null; } repository.Add(paycenter); } Succeed = repository.Save(); if (!Succeed) { var mensaje = modificando ? "crear" : "actualizar"; AddValidationMessage(enumMessageType.UnhandledException, "No fue posible " + mensaje + " el paycenter. Favor de intentar más tarde o comunicarse con servicio a cliente."); if (!modificando) { try { //Elimino el usuario en caso de haber fallado la creación del PayCenter var user = Membership.GetUser(paycenter.UserName); if (user != null) { membership.Delete(user); } } catch (Exception ex) { Succeed = false; AddValidationMessage(enumMessageType.Notification, "El usuario creado no pudo ser eliminado"); } } } else { paycenterVM.Activo = true; //Esto es sólo para que se deshabiliten los campos AddValidationMessage(enumMessageType.Succeed, "El PayCenter se ha guardado con éxito. Si deseas modificar o terminar de completar tu información deberás acceder mediante el enlace que recibiste en tu correo o contactar al equipo de Evoluciona Móvil. En breve tu registro como PayCenter quedará activado."); } } } return View(paycenterVM); }
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); }