/// <summary> /// Recupera apenas algumas informações do usuário /// </summary> /// <param name="userID">ID do usuário a ter informações recuperadas</param> /// <param name="error">Controle de erro</param> /// <returns>Usuário selecionado</returns> public static UserModel RetrieveUserLight(Guid userID) { DBConfigurations database = new DBConfigurations(); var userDTO = (from user in database.Users where user.ID == userID select user).First(); var userModel = Conversor.UserDTOToModel(userDTO); userModel.FileContentResult = ImagesManager.RetrieveImage(userModel.ID); return(userModel); }
/// <summary> /// Atualiza os dados do usuário /// </summary> /// <param name="model">Model do usuário logado para mudança de dados</param> /// <param name="error">Controle de erro</param> /// <returns>Usuário atualizado</returns> public static bool UpdateUser(UserModel model, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { var userToEdit = database.Users.First(i => i.ID == model.ID); // Atualiza usuário userToEdit.Birth = model.Birth; userToEdit.City = model.City; userToEdit.CPF = model.CPF; userToEdit.Email = model.Email; userToEdit.FullName = model.FullName; userToEdit.RG = model.RG; userToEdit.Sex = model.Sex; userToEdit.City = model.City; //Atualiza senha if (model.Password != null) { string encryptPass = Security.Encrypt(model.Password); userToEdit.Password = encryptPass; } //Atualiza imagem if (model.FileImage != null) { //Remove imagem antiga e adiciona a nova ImagesManager.RemoveImage(userToEdit.ID); ImagesManager.SaveImage(model.FileImage, userToEdit.ID); } //Atualiza conta var userBankToEdit = database.UserBank.First(i => i.ID == userToEdit.UserBankID); userBankToEdit.Account = model.BankAccount.Account; userBankToEdit.Agency = model.BankAccount.Agency; userBankToEdit.BankID = model.BankAccount.BankID; userToEdit.Notifications = model.Notifications; database.SaveChanges(); return(true); } catch (Exception) { error = ErrorEnum.ExceptionError; return(false); } }
/// <summary> /// Adiciona uma nova instancia de usuário no banco de dados se esta não existir. /// Verifica se nome de usuário e CPF já estão em uso antes de adicionar. /// </summary> /// <param name="user">UserModel a ser adicionado</param> /// <returns>ID do usuário adicionado, ou uma Guid vazia em caso de erro de inserção.</returns> public static Guid?InsertUser(UserModel user, out ErrorEnum errorEnum) { if (!UserManager.IsUserLoginExist(user.Username)) { if (!UserManager.CPFUserExist(user.CPF)) { try { //Encripta a senha string encryptPass = Security.Encrypt(user.Password); user.Password = encryptPass; //Define informações do banco UserBanks userBankDAO = Conversor.UserBankModelToDTO(user.BankAccount); userBankDAO.ID = Guid.NewGuid(); //Define configurações do usuário Users userDAO = Conversor.UserModelToDTO(user); userDAO.ID = Guid.NewGuid(); userDAO.UserBankID = userBankDAO.ID; userDAO.Notifications = user.Notifications; errorEnum = ErrorEnum.NoErrors; var inserted = UserManager.AddUser(userDAO, userBankDAO); //Se inseriu com sucesso, insere imagem de perfil selecionada if ((inserted != Guid.Empty) && (inserted != null)) { ImagesManager.SaveImage(user.FileImage, inserted); } return(inserted); } catch (Exception ex) { errorEnum = ErrorEnum.ExceptionError; return(null); } } else { errorEnum = ErrorEnum.ExistentCPF; return(null); } } else { errorEnum = ErrorEnum.ExistentUsername; return(null); } }
/// <summary> /// Realiza consulta para trazer os dados do usuário no banco de dados e armazenar o resultado em uma /// variável de seção. /// </summary> /// <param name="userID">ID do usuário logado (Guid)</param> /// <param name="error">Enum de retorno de erros</param> /// <returns></returns> public static UserModel RetrieveUser(Guid userID, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { var userDTO = (from user in database.Users where user.ID == userID select user).First(); var userModel = Conversor.UserDTOToModel(userDTO); #region Messages var messagesDTO = UserManager.GetMessages(userModel.ID); userModel.MessagesFromMe = new List <Messages>(); userModel.MessagesToMe = new List <Messages>(); foreach (var message in messagesDTO) { if (message.SenderID == userModel.ID) { userModel.MessagesFromMe.Add(message); } else { userModel.MessagesToMe.Add(message); } } #endregion #region Rides userModel.DonorRides = RidesManager.GetDonorRides(userModel.ID); userModel.ReceiverRides = RidesManager.GetReceiverRides(userModel.ID); userModel.OpenRequests = RidesManager.GetRidesRequests(userModel.ID); #endregion #region BankAccount var userBankAccount = UserBankManager.GetUserBankAccount(userDTO.UserBankID); userModel.BankAccount.Account = userBankAccount.Account; userModel.BankAccount.Agency = userBankAccount.Agency; userModel.BankAccount.BankID = userBankAccount.BankID; userModel.BankAccount.ID = userBankAccount.ID; #endregion #region Image userModel.FileContentResult = ImagesManager.RetrieveImage(userModel.ID); #endregion #region Friends Requests userModel.FriendsRequests = FriendshipManager.GetFriendsRequests(userModel.ID); #endregion #region ListNotifications userModel.ListNotifications = NotificationsManager.GetUserNotifications(userModel.ID); userModel.RidesRequests = RidesRequestManager.GetAllRequestsByDriver(userModel.ID); #endregion return(userModel); } catch (Exception) { error = ErrorEnum.ExceptionError; return(null); } }