/// <summary> /// Responsável por criar uma nova carona /// </summary> /// <param name="ride"></param> /// <param name="error"></param> public static Guid CreateRide(RidesModel ride, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; var rideDTO = Conversor.RidesModelToDTO(ride); rideDTO.ID = Guid.NewGuid(); rideDTO.RemainingSeats = rideDTO.Seats; //se foi recém criada, tem todos os assentos disponíveis database.Ride.Add(rideDTO); database.SaveChanges(); int turn = 0; foreach (var point in ride.Direction.Path) { var direction = new Directions { ID = Guid.NewGuid(), Lat = point.Lat, Long = point.Long, Position = turn, Ride_ID = rideDTO.ID }; turn++; database.Directions.Add(direction); } database.SaveChanges(); return(rideDTO.ID); }
/// <summary> /// Edita carro passado como parâmetro /// </summary> /// <param name="model">CarModel para modificação</param> /// <param name="result">Controle de erro</param> /// <returns>True se removido com sucesso, False caso contrário</returns> public static bool EditCar(CarModel model, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { var carToEdit = database.Cars.First(i => i.ID == model.ID); //Update carToEdit.ArConditioning = model.ArConditioning; carToEdit.Color = model.Color; carToEdit.Digits = model.Digits; carToEdit.Make = model.Make; carToEdit.Model = model.Modelo; carToEdit.Pet = model.Pet; carToEdit.Radio = model.Radio; carToEdit.RENAVAM = model.RENAVAM; carToEdit.Smoke = model.Smoke; database.SaveChanges(); return(true); } catch (Exception) { error = ErrorEnum.ExceptionError; return(false); } }
/// <summary> /// Envia um convite de amizade do usuário userModel para o usuário com ID da guid recebida /// </summary> /// <param name="userModel">Usuário logado (usuário que enviou o convite)</param> /// <param name="friendID">ID do usuário a receber solicitação de amizade</param> /// <param name="error">Controle de erro</param> /// <returns>True se enviou solicitação com sucesso ou false</returns> public static bool InviteFriend(UserModel userModel, Guid friendID, out ErrorEnum error) { //Verifica se convite já não foi enviado DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { //Se convite não existir, envia if (!FriendshipManager.AreFriends(userModel.ID, friendID)) { var newFriendship = new Friendships { User_A = userModel.ID, User_B = friendID, Approved = false }; database.Friendships.Add(newFriendship); database.SaveChanges(); return(true); } //Se existir, retorna falso else { error = ErrorEnum.ResendSolicitation; return(false); } } catch (Exception) { error = ErrorEnum.ExceptionError; return(false); } }
/// <summary> /// Aceita solicitação de amizade entre dois usuários /// </summary> /// <param name="userID">Usuário que aceitou solicitação</param> /// <param name="friendID">Usuário que enviou solicitação</param> /// <param name="result">Controle de erro</param> /// <returns>True se aceitou com sucesso</returns> public static bool AcceptFriend(Guid userID, Guid friendID, out ErrorEnum result) { DBConfigurations database = new DBConfigurations(); result = ErrorEnum.NoErrors; try { var friendshipSolicitation = database.Friendships.First(request => (request.User_A == friendID && request.User_B == userID && request.Approved == false)); friendshipSolicitation.Approved = true; Friendships newFriend = new Friendships { User_A = userID, User_B = friendID, Approved = true }; database.Friendships.Add(newFriend); database.SaveChanges(); return(true); } catch (Exception) { result = ErrorEnum.ExceptionError; return(false); } }
/// <summary> /// Envia uma notificação de aceitação ou negação da carona /// </summary> /// <param name="userID">ID do usuário que solicita a carona</param> /// <param name="driverName">Nome do motorista</param> /// <param name="accepted">Controla se é uma mensagem de que o motorista aceitou ou cancelou a carona</param> public static void AddRideRequestNotification(Guid userID, string driverName, bool accepted) { DBConfigurations database = new DBConfigurations(); string text = ""; if (accepted) { text = driverName + " aceitou sua solicitação de carona."; } else { text = driverName + " rejeitou sua solicitação de carona."; } Notifications not = new Notifications { ID = Guid.NewGuid(), UserID = userID, Text = text, New = true }; NotificationsManager.SendEmailNotification(userID, text); database.Notifications.Add(not); database.SaveChanges(); }
public static void MarkAsRead(Guid messageID) { DBConfigurations database = new DBConfigurations(); var message = database.Messages.First(m => m.ID == messageID); message.New = false; database.SaveChanges(); }
public static void RemoveMessage(Guid messageID) { DBConfigurations database = new DBConfigurations(); var message = database.Messages.First(m => m.ID == messageID); database.Messages.Remove(message); database.SaveChanges(); }
private static Guid AddUser(User userDAO, UserBank userBankDAO) { DBConfigurations database = new DBConfigurations(); database.User.Add(userDAO); database.UserBank.Add(userBankDAO); database.SaveChanges(); return(userDAO.ID); }
public static void InsertUserCars(Guid userID, Guid carID) { DBConfigurations database = new DBConfigurations(); database.UserCars.Add(new UserCars { CarID = carID, UserID = userID }); database.SaveChanges(); }
/// <summary> /// Cancela sua presença em alguma carona que aceitou anteriormente /// </summary> /// <param name="userID">ID do usuário que deseja cancelar sua presença</param> /// <param name="rideID">ID da carona que o usuário deseja cancelar sua presença</param> /// <param name="userName">Username do usuário</param> public static void CancelRidePresence(Guid userID, Guid rideID, string userName) { DBConfigurations database = new DBConfigurations(); var rideUser = (from rides in database.RideUsers where rides.UserID == userID && rides.RideID == rideID select rides).First(); var ride = (from rides in database.Ride where rides.ID == rideID select rides).First(); ride.RemainingSeats++; database.RideUsers.Remove(rideUser); database.SaveChanges(); NotificationsManager.AddUserCancelRideNotification(userName, ride.ToPlace, ride.DonorID); }
/// <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> /// Rejeita uma solicitação de reserva /// </summary> /// <param name="userID">Usuário que pediu a carona</param> /// <param name="rideID">Identificador da carona</param> /// <param name="username">Nome do usuário que solicitou a carona</param> /// <param name="driverName">Nome do motorista</param> public static void RejectReservation(Guid userID, Guid rideID, string username) { DBConfigurations database = new DBConfigurations(); var reserve = (from reservation in database.RidesRequest where reservation.RideID == rideID && reservation.UserID == userID select reservation).First(); database.RidesRequest.Remove(reserve); database.SaveChanges(); NotificationsManager.AddRideRequestNotification(userID, username, false); }
/// <summary> /// Insere uma nova notificação de que algum contato aceitou a solicitação de amizade para determinado usuário /// </summary> /// <param name="userID">Usuário que vai receber a notificação</param> /// <param name="acceptedFriend">Nome do usuário que aceitou a amizade</param> public static void AddFriendAcceptedNotification(Guid userID, string acceptedFriend) { DBConfigurations database = new DBConfigurations(); Notifications not = new Notifications { ID = Guid.NewGuid(), UserID = userID, Text = acceptedFriend + EnumUtils.ValueOf(NotificationsEnum.FriendAccepted), New = true }; NotificationsManager.SendEmailNotification(userID, acceptedFriend + EnumUtils.ValueOf(NotificationsEnum.FriendAccepted)); database.Notifications.Add(not); database.SaveChanges(); }
/// <summary> /// Marca todas as notificações como vistas /// </summary> /// <param name="userID">ID do usuário com a notificação</param> public static void RemoveNotifications(Guid userID) { DBConfigurations database = new DBConfigurations(); var listNotifications = (from notification in database.Notifications where ((notification.UserID == userID) && (notification.New == true)) select notification).ToList(); foreach (var not in listNotifications) { var foundNot = database.Notifications.First(i => i.ID == not.ID); foundNot.New = false; } database.SaveChanges(); }
/// <summary> /// Envia mensagem para o motorista que determinado usuário cancelou sua carona /// </summary> /// <param name="userName">Nome do usuário que cancelou</param> /// <param name="ridePlace">Nome do destino do cancelamento</param> /// <param name="driverID">ID do motorista</param> public static void AddUserCancelRideNotification(string userName, string ridePlace, Guid driverID) { DBConfigurations database = new DBConfigurations(); Notifications not = new Notifications { ID = Guid.NewGuid(), UserID = driverID, Text = userName + " cancelou sua presença na carona para " + ridePlace, New = true }; NotificationsManager.SendEmailNotification(driverID, userName + " cancelou sua presença na carona para " + ridePlace); database.Notifications.Add(not); database.SaveChanges(); }
/// <summary> /// Remove uma relação de amizade entre dois contatos /// </summary> /// <param name="userID">ID de um contato</param> /// <param name="friendID">ID do outro contato</param> /// <returns>True se efetuou a remoção</returns> public static bool RemoveFriendship(Guid userID, Guid friendID) { DBConfigurations database = new DBConfigurations(); var relation_A = database.Friendships.First(request => (request.User_A == friendID && request.User_B == userID)); var relation_B = database.Friendships.First(request => (request.User_A == userID && request.User_B == friendID)); database.Friendships.Remove(relation_A); database.Friendships.Remove(relation_B); database.SaveChanges(); return(true); }
/// <summary> /// Efetua o envio de uma mensagem a um usuário /// </summary> /// <param name="senderID">Guid do usuário que envioou a mensagem</param> /// <param name="senderName">Nome do usuário que enviou a mensagem</param> /// <param name="receiverName">Nome do recebedor da mensagem</param> /// <param name="receiverID">ID do recebedor da mensagem</param> /// <param name="message">Mensagem</param> public static void SendMessage(string senderID, string senderName, string receiverName, string receiverID, string message) { DBConfigurations database = new DBConfigurations(); Messages m = new Messages { ID = Guid.NewGuid(), Message = message, New = true, ReceiverID = new Guid(receiverID), ReceiverName = receiverName, SendedDate = DateTime.Now, SenderID = new Guid(senderID), SenderName = senderName }; database.Messages.Add(m); database.SaveChanges(); }
public static void RemoveImage(Guid userID) { DBConfigurations database = new DBConfigurations(); try { var img = (from image in database.Images where image.UserID == userID select image).First(); if (img != null) { database.Images.Remove(img); database.SaveChanges(); } } catch (Exception) { // TODO } }
/// <summary> /// Remove o carro com ID recebido por parametro da base de veículos /// </summary> /// <param name="carID">ID do carro a ser removido</param> /// <param name="result">Controle de erro</param> /// <returns>True se removido com sucesso, False caso contrário</returns> public static bool RemoveCar(Guid carID, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { var carToRemove = (from car in database.Cars where car.ID == carID select car).First(); database.Cars.Remove(carToRemove); database.SaveChanges(); return(true); } catch (Exception) { error = ErrorEnum.ExceptionError; return(false); } }
/// <summary> /// Método chamado quando o motorista deseja cancelar a carona que cadastrou anteriormente. /// Além de cancelar, notifica os usuários que aceitaram a carona que esta foi cancelada. /// </summary> /// <param name="rideID">ID da carona a ser cancelada</param> public static void CancelDonorRide(Guid rideID) { DBConfigurations database = new DBConfigurations(); //Apaga carona var listaUsuariosCaronas = (from rideUsers in database.RideUsers where rideUsers.RideID == rideID select rideUsers).ToList(); var listaUsuariosReserva = (from rideUsers in database.RidesRequest where rideUsers.RideID == rideID select rideUsers).ToList(); var ride = (from rides in database.Ride where rides.ID == rideID select rides).First(); var ridesUsers = (from rides in database.RideUsers where rides.RideID == rideID select rides).ToList(); var ridesRequest = (from rides in database.RidesRequest where rides.RideID == rideID select rides).ToList(); //Remove a carona database.Ride.Remove(ride); //Notifica lista de usuários que aceitaram a carona foreach (var userCarona in listaUsuariosCaronas) { var notification = new Notifications { ID = Guid.NewGuid(), New = true, Text = ride.DonorName + EnumUtils.ValueOf(NotificationsEnum.RideCancelled) + ride.ToPlace, UserID = userCarona.UserID }; database.Notifications.Add(notification); } //Notifica lista de usuários que reservaram a carona foreach (var userCarona in listaUsuariosReserva) { var notification = new Notifications { ID = Guid.NewGuid(), New = true, Text = ride.DonorName + EnumUtils.ValueOf(NotificationsEnum.RideCancelled) + ride.ToPlace, UserID = userCarona.UserID }; database.Notifications.Add(notification); } database.SaveChanges(); }
/// <summary> /// Cancela uma reserva de uma carona /// </summary> /// <param name="userID">ID do usuário que deseja cancelar a reserva</param> /// <param name="driverID">ID do motorista da reserva</param> /// <param name="rideID">ID da carona a ser cancelada</param> /// <param name="error">Variável de controle de erro</param> public static void CancelRideReservation(Guid userID, Guid driverID, Guid rideID, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { var isRequested = (from requests in database.RidesRequest where requests.UserID == userID && requests.RideID == rideID && requests.DriverID == driverID select requests).First(); database.RidesRequest.Remove(isRequested); database.SaveChanges(); } catch (Exception) { error = ErrorEnum.ExceptionError; } }
/// <summary> /// Insere o carro associando-o a um usuário /// </summary> /// <param name="model">CarModel a ser associado e inserido na base</param> /// <param name="userID">ID do usuário que inseriu o veículo</param> /// <param name="error">Controle de erro</param> /// <returns>True se inserido com sucesso ou false caso contrário</returns> public static bool InsertCar(CarModel model, Guid userID, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { var car = Conversor.CarModelToDTO(model); car.ID = Guid.NewGuid(); database.Cars.Add(car); database.UserCars.Add(new UserCars { CarID = car.ID, UserID = userID }); database.SaveChanges(); return(true); } catch (Exception) { error = ErrorEnum.ExceptionError; return(false); } }
/// <summary> /// Envia uma requisição de reserva para o motorista /// </summary> /// <param name="username">Nome do usuário que solicita a reserva</param> /// <param name="rideID">ID da carona</param> public static void RequestRideReservation(Guid userID, Guid driverID, Guid rideID, out ErrorEnum error) { DBConfigurations database = new DBConfigurations(); error = ErrorEnum.NoErrors; try { RidesRequest request = new RidesRequest { DriverID = driverID, RideID = rideID, UserID = userID }; database.RidesRequest.Add(request); database.SaveChanges(); } catch (Exception) { error = ErrorEnum.ResendRideSolicitation; } }
/// <summary> /// Armazena imagem selecionada pelo usuário no cadastro. /// </summary> /// <param name="fileImage">Imagem selecionada</param> /// <param name="userID">ID do usuário que a cadastrou</param> public static void SaveImage(HttpPostedFileBase fileImage, Guid userID) { DBConfigurations database = new DBConfigurations(); try { var imageData = new byte[fileImage.ContentLength]; fileImage.InputStream.Read(imageData, 0, fileImage.ContentLength); Images img = new Images { UserID = userID, ImageContent = imageData, ContentType = fileImage.ContentType }; database.Images.Add(img); database.SaveChanges(); } catch (Exception) { //TODO ? } }
/// <summary> /// Aceita uma carona selecionada /// </summary> /// <param name="userID">ID do usuário que quer aceitar a carona</param> /// <param name="rideID">ID da carona que o usuário deseja aceitar </param> /// <returns>True se aceitado com sucesso</returns> public static bool AcceptRide(Guid userID, Guid rideID, string username) { DBConfigurations database = new DBConfigurations(); try { var ride = database.Ride.First(r => r.ID == rideID); if (ride.RemainingSeats != 0) { ride.RemainingSeats--; RideUsers rideUser = new RideUsers { RideID = rideID, UserID = userID }; var newNotification = new Notifications { ID = Guid.NewGuid(), New = true, Text = username + EnumUtils.ValueOf(NotificationsEnum.RideAccepted) + ride.ToPlace, UserID = userID }; database.Notifications.Add(newNotification); database.RideUsers.Add(rideUser); database.SaveChanges(); return(true); } else { return(false); } } catch (Exception) { return(false); } }