public JsonResult ValidateNumeration([FromBody] SimplifiedReqTemplateViewModel item)
        {
            //Get Project Numeration
            Configuração conf = DBConfigurations.GetById(1);

            if (conf != null)
            {
                int numModReqSimplificadas = conf.NumeraçãoModReqSimplificadas.Value;

                ConfiguraçãoNumerações numConf = DBNumerationConfigurations.GetById(numModReqSimplificadas);

                //Validate if id is valid
                if (!(item.RequisitionTemplateId == "" || item.RequisitionTemplateId == null) && !numConf.Manual.Value)
                {
                    return(Json("A numeração configurada para os modelos de requisição simplificada não permite inserção manual."));
                }
                else if (item.RequisitionTemplateId == "" && !numConf.Automático.Value)
                {
                    return(Json("É obrigatório inserir o Nº Modelo."));
                }
            }
            else
            {
                return(Json("Não foi possivel obter as configurações base de numeração."));
            }
            return(Json(""));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Seleciona todas as caronas para lista de usuário recebida
        /// </summary>
        /// <param name="listUsersID">Lista de usuários</param>
        /// <returns>Lista com caronas dos usuário recebidos</returns>
        private static List <RidesModel> RetrieveFromListNoFilter(List <Guid> listUsersID)
        {
            DBConfigurations database = new DBConfigurations();
            var listRides             = new List <Rides>();
            var listRidesModel        = new List <RidesModel>();

            //Seleciona todas as caronas cadastradas para o mes vigente de cada usuário na lista e que tenham
            //acentos disponíveis
            foreach (var userID in listUsersID)
            {
                var listTemp = (from ride in database.Ride
                                where
                                (ride.DonorID == userID) &&
                                (ride.TimeFrom.Month == DateTime.Now.Month) &&
                                (ride.TimeFrom >= DateTime.Now) &&
                                (ride.RemainingSeats != 0)
                                select ride).ToList();

                listRides.AddRange(listTemp);
            }

            foreach (var rideDTO in listRides)
            {
                listRidesModel.Add(Conversor.RidesToModel(rideDTO));
            }
            return(listRidesModel);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Retorna o nome dado o id do usuário
        /// </summary>
        /// <param name="userID">ID do usuário a ter o nome pesquisado</param>
        /// <returns>Nome do usuário</returns>
        public static string RetrieveNameById(Guid userID)
        {
            DBConfigurations database = new DBConfigurations();
            var name = (from user in database.Users where user.ID == userID select user).First().FullName;

            return(name);
        }
Exemplo n.º 4
0
        public static UserBanks GetUserBankAccount(Guid userBankId)
        {
            DBConfigurations database = new DBConfigurations();
            var userBankAccount       = (from account in database.UserBank where account.ID == userBankId select account).First();

            return(userBankAccount);
        }
Exemplo n.º 5
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.º 6
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.º 7
0
        /// <summary>
        /// Verifica se a ID selecionada para login não existe na base de dados
        /// </summary>
        /// <param name="loginID">Nome de usuário selecionado</param>
        /// <returns>True se usuário existir na base, False se não existir</returns>
        public static bool IsUserLoginExist(string userID)
        {
            DBConfigurations database = new DBConfigurations();
            bool             exists   = (from user in database.User where user.Username == userID select user).Any();

            return(exists);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Se não definiu nada, ou se definiu só cidade ou idade, busca pelos dois
        /// </summary>
        /// <param name="city">Cidade para pesquisa</param>
        /// <param name="years">Idade para pesquisa</param>
        /// <param name="modelCity">Cidade do usuário</param>
        /// <param name="modelYear">Ano de nascimento do usuário</param>
        /// <returns>Lista com resultados encontrados</returns>
        private static List <Users> SearchNoFilters(string city, int?years, string modelCity, int modelYear)
        {
            DBConfigurations database = new DBConfigurations();
            var listRelatedFriends    = new List <Users>();

            //Se não definiu filtro algum e não tem nenhum amigo, sistema procura
            //usuário da mesma cidade com até 10 anos de diferença
            if (city.Trim().Length == 0)
            {
                city = modelCity;
            }
            if (years == null)
            {
                years = 10;
            }

            listRelatedFriends = (from user in database.Users
                                  where
                                  ((user.City == city) &&
                                   ((user.Birth.Year - modelYear) <= years)) &&
                                  ((user.Birth.Year - modelYear) >= -(years))
                                  select user).Take(20).ToList();

            return(listRelatedFriends);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Verifica se senha digitada corresponde
        /// </summary>
        /// <param name="Password">Senha inserida</param>
        /// <returns>True se verdadeiro, False se falso</returns>
        public static bool ValidatePassword(string password, Guid userID, out ErrorEnum errorEnum)
        {
            DBConfigurations database = new DBConfigurations();

            errorEnum = ErrorEnum.NoErrors;
            try
            {
                var encryptPassword = Security.Encrypt(password);
                var userDTO         = (from user in database.Users where user.ID == userID && user.Password == encryptPassword select user).First();
                if (userDTO != null)
                {
                    return(true);
                }
                else
                {
                    errorEnum = ErrorEnum.InvalidPassword;
                    return(false);
                }
            }
            catch (Exception ex)
            {
                errorEnum = ErrorEnum.InvalidPassword;
                return(false);
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Efetua o login do usuário e senha caso estes existam
        /// </summary>
        /// <param name="user">Usuário a ser logado</param>
        /// <param name="password">Senha inserida</param>
        /// <param name="message">Mensagem de erro para o controle</param>
        /// <returns></returns>
        public static UserModel LoginUser(string username, string password, out ErrorEnum errorEnum)
        {
            DBConfigurations database = new DBConfigurations();

            try
            {
                var encryptPassword = Security.Encrypt(password);
                var userDTO         = (from user in database.Users where user.Username == username && user.Password == encryptPassword select user).First();
                if (userDTO != null)
                {
                    var userModel       = Conversor.UserDTOToModel(userDTO);
                    var bankAccountDTO  = (from userBank in database.UserBank where userBank.ID == userDTO.UserBankID select userBank).First();
                    var userBankAccount = Conversor.UserBankToModel(bankAccountDTO);
                    var bankDTO         = (from banks in database.Banks where banks.ID == userBankAccount.BankID select banks).First();
                    userBankAccount.Name = bankDTO.Nome;

                    userModel.BankAccount = userBankAccount;
                    errorEnum             = ErrorEnum.NoErrors;
                    return(userModel);
                }
                else
                {
                    errorEnum = ErrorEnum.InvalidUsername;
                    return(null);
                }
            }
            catch (Exception ex)
            {
                errorEnum = ErrorEnum.InvalidUsername;
                return(null);
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Retorna carro com ID passado por parâmetro
        /// </summary>
        /// <param name="carID">ID do carro a ser pesquisado</param>
        /// <returns>CarModel respectivo</returns>
        public static CarModel RetrieveCar(Guid carID)
        {
            DBConfigurations database = new DBConfigurations();
            var carDTO = (from car in database.Cars where car.ID == carID select car).First();

            return(Conversor.CarsToModel(carDTO));
        }
Exemplo n.º 12
0
        public JsonResult ValidateNumeration([FromBody] ContactViewModel item)
        {
            //Get Project Numeration
            Configuração conf = DBConfigurations.GetById(1);

            if (conf != null)
            {
                int contactsNumerationConfId = conf.NumeraçãoContactos.Value;

                ConfiguraçãoNumerações numConf = DBNumerationConfigurations.GetById(contactsNumerationConfId);

                //Validate if id is valid
                if (!(item.No == "" || item.No == null) && !numConf.Manual.Value)
                {
                    return(Json("A numeração configurada para contactos não permite inserção manual."));
                }
                else if (item.No == "" && !numConf.Automático.Value)
                {
                    return(Json("É obrigatório inserir o Nº de Contacto."));
                }
            }
            else
            {
                return(Json("Não foi possivel obter as configurações base de numeração."));
            }
            return(Json(""));
        }
Exemplo n.º 13
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.º 14
0
        /// <summary>
        /// Busca todsa as socilitações de reserva em aberto para este motorista
        /// </summary>
        /// <param name="driverID">ID do motorista</param>
        /// <returns>Lista com todas as solicitações de reserva</returns>
        public static List <RidesRequest> GetAllRequestsByDriver(Guid driverID)
        {
            DBConfigurations database = new DBConfigurations();
            var listRequests          = (from requests in database.RidesRequest where requests.DriverID == driverID select requests).ToList();

            return(listRequests);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Verifica se o CPF selecionado não existe na base de dados
        /// </summary>
        /// <param name="userCPF">CPF do usuário selecionado</param>
        /// <returns>True se o CPF existir e false se não existir</returns>
        public static bool CPFUserExist(string userCPF)
        {
            DBConfigurations database = new DBConfigurations();
            bool             exists   = (from user in database.User where user.CPF == userCPF select user).Any();

            return(exists);
        }
Exemplo n.º 16
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.º 17
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.º 18
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.º 19
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.º 20
0
        /// <summary>
        /// Retorna lista com todas as mensagens do usuário
        /// </summary>
        /// <param name="userID">ID do usuário</param>
        /// <returns>Lista com todas as mensagens do usuário</returns>
        private static List <Messages> GetMessages(Guid userID)
        {
            DBConfigurations database = new DBConfigurations();
            var messagesDTO           = (from message in database.Messages
                                         where (message.SenderID == userID || message.ReceiverID == userID)
                                         select message).ToList();

            return(messagesDTO);
        }
Exemplo n.º 21
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.º 22
0
        /// <summary>
        /// Verifica se usuário aceitou determinada carona
        /// </summary>
        /// <param name="userID">ID do usuário para verificação</param>
        /// <param name="rideID">ID da carona para verificação</param>
        /// <returns>True se aceitou. False se não aceitou.</returns>
        public static bool IsRideAccepted(Guid userID, Guid rideID)
        {
            DBConfigurations database = new DBConfigurations();
            var isRideAccepted        = (from rideUsers in database.RideUsers
                                         where rideUsers.UserID == userID && rideUsers.RideID == rideID
                                         select rideUsers).Any();

            return(isRideAccepted);
        }
Exemplo n.º 23
0
        /// <summary>
        /// Verifica se usuário solicitou a reserva de uma carona
        /// </summary>
        /// <param name="userID">ID do usuário</param>
        /// <param name="rideID">ID da carona</param>
        /// <returns>True se usuário efetuou a reserva, false se não</returns>
        public static bool IsRideRequested(Guid userID, Guid rideID)
        {
            DBConfigurations database = new DBConfigurations();
            var isRequested           = (from requests in database.RidesRequest
                                         where requests.UserID == userID &&
                                         requests.RideID == rideID
                                         select requests).Any();

            return(isRequested);
        }
Exemplo n.º 24
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.º 25
0
        /// <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);
        }
Exemplo n.º 26
0
        /// <summary>
        /// Se defininiu apenas nome, pesquisa por este
        /// </summary>
        /// <param name="name">Nome solicitado para pesquisa</param>
        /// <returns>Lista com resultados encontrados</returns>
        private static List <Users> SearchName(string name)
        {
            DBConfigurations database = new DBConfigurations();
            var listRelatedFriends    = new List <Users>();

            listRelatedFriends = (from user in database.Users
                                  where (user.FullName.Contains(name))
                                  select user).Take(20).ToList();
            return(listRelatedFriends);
        }
Exemplo n.º 27
0
        /// <summary>
        /// Retorna apenas os IDS de todos os contatos de determinado usuário
        /// </summary>
        /// <param name="userID">ID do usuário a ter a pesquisa efetuada</param>
        /// <returns>Lista com IDS</returns>
        public static List <Guid> RetrieveFriendsID(Guid userID)
        {
            DBConfigurations database = new DBConfigurations();
            var friendships           = (from friend in database.Friendships
                                         where (friend.User_A == userID) &&
                                         (friend.Approved == true)
                                         select friend.User_B).ToList();

            return(friendships);
        }
Exemplo n.º 28
0
        /// <summary>
        /// Retorna todas as novas notificações baseadas no usuário recebido
        /// </summary>
        /// <param name="userId">ID do usuário a ser retornadas as notificações</param>
        /// <returns>Lista com todas as notificações não vistas pelo usuário</returns>
        public static List <Notifications> GetUserNotifications(Guid userId)
        {
            DBConfigurations database = new DBConfigurations();
            var listNotifications     = (from notification in database.Notifications
                                         where ((notification.UserID == userId) &&
                                                (notification.New == true))
                                         select notification).ToList();

            return(listNotifications);
        }
Exemplo n.º 29
0
        public JsonResult CreateRecordTechnicalOfPlates([FromBody] RecordTechnicalOfPlatesModelView data)
        {
            if (data != null)
            {
                //Get Numeration
                bool         autoGenId = false;
                Configuração conf      = DBConfigurations.GetById(1);
                int          entityNumerationConfId = conf.NumeraçãoFichasTécnicasDePratos.Value;

                if (data.PlateNo == "" || data.PlateNo == null)
                {
                    autoGenId    = true;
                    data.PlateNo = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false);
                }
                if (data.PlateNo != null)
                {
                    data.CreateUser = User.Identity.Name;
                    var createdItem = DBRecordTechnicalOfPlates.Create(data.ParseToDB());
                    if (createdItem != null)
                    {
                        data = createdItem.ParseToViewModel();

                        //Update Last Numeration Used
                        if (autoGenId)
                        {
                            ConfiguraçãoNumerações ConfigNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId);
                            ConfigNumerations.ÚltimoNºUsado         = data.PlateNo;
                            ConfigNumerations.UtilizadorModificação = User.Identity.Name;
                            DBNumerationConfigurations.Update(ConfigNumerations);
                        }

                        data.eReasonCode = 1;
                        data.eMessage    = "Registo criado com sucesso.";
                    }
                    else
                    {
                        data             = new RecordTechnicalOfPlatesModelView();
                        data.eReasonCode = 2;
                        data.eMessage    = "Ocorreu um erro ao editar o registo.";
                    }
                }
                else
                {
                    data.eReasonCode = 2;
                    data.eMessage    = "A numeração configurada não é compativel com a inserida.";
                }
            }
            else
            {
                data             = new RecordTechnicalOfPlatesModelView();
                data.eReasonCode = 2;
                data.eMessage    = "Ocorreu um erro: a linha não pode ser nula.";
            }
            return(Json(data));
        }
Exemplo n.º 30
0
        /// <summary>
        /// Se definiu apenas email, pesquisa por este
        /// </summary>
        /// <param name="email">Email para pesquisa</param>
        /// <returns>Lista com resultados encontrados</returns>
        private static List <Users> SearchEmail(string email)
        {
            DBConfigurations database = new DBConfigurations();
            var listRelatedFriends    = new List <Users>();

            listRelatedFriends = (from user in database.Users
                                  where (user.Email.Contains(email))
                                  select user).Take(20).ToList();

            return(listRelatedFriends);
        }