Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
        /// <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);
            }
        }
Exemplo n.º 5
0
        /// <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();
        }
Exemplo n.º 6
0
        public static void MarkAsRead(Guid messageID)
        {
            DBConfigurations database = new DBConfigurations();
            var message = database.Messages.First(m => m.ID == messageID);

            message.New = false;
            database.SaveChanges();
        }
Exemplo n.º 7
0
        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();
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        public static void InsertUserCars(Guid userID, Guid carID)
        {
            DBConfigurations database = new DBConfigurations();

            database.UserCars.Add(new UserCars {
                CarID  = carID,
                UserID = userID
            });
            database.SaveChanges();
        }
Exemplo n.º 10
0
        /// <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);
        }
Exemplo n.º 11
0
        /// <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);
            }
        }
Exemplo n.º 12
0
        /// <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);
        }
Exemplo n.º 13
0
        /// <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();
        }
Exemplo n.º 14
0
        /// <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();
        }
Exemplo n.º 15
0
        /// <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();
        }
Exemplo n.º 16
0
        /// <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);
        }
Exemplo n.º 17
0
        /// <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();
        }
Exemplo n.º 18
0
        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
            }
        }
Exemplo n.º 19
0
        /// <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);
            }
        }
Exemplo n.º 20
0
        /// <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();
        }
Exemplo n.º 21
0
        /// <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;
            }
        }
Exemplo n.º 22
0
        /// <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);
            }
        }
Exemplo n.º 23
0
        /// <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;
            }
        }
Exemplo n.º 24
0
        /// <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 ?
            }
        }
Exemplo n.º 25
0
        /// <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);
            }
        }