예제 #1
0
        private static void UpdateFields(BranchDTO branchDTO, Branch branch, RampUpProjectEntities dbContext)
        {
            if (branch.Fields != null)
            {
                foreach (Field field in branch.Fields)
                {
                    if (field.Field_Id != 0)
                    {
                        dbContext.Entry(field).State = System.Data.Entity.EntityState.Modified;
                    }
                    else
                    {
                        dbContext.Entry(field).State = System.Data.Entity.EntityState.Added;
                    }
                }

                List <int>   fields            = branch.Fields.Select(y => y.Field_Id).ToList();
                List <Field> toBeDeletedFields = dbContext.Fields.Where(x => !fields.Contains(x.Field_Id) && x.Branch_Id == branchDTO.Branch_Id).ToList();

                foreach (Field field in toBeDeletedFields)
                {
                    dbContext.Entry(field).State = System.Data.Entity.EntityState.Deleted;
                }
            }
        }
예제 #2
0
        public List <BusinessDTO> GetMyBusinesses(int userID)
        {
            bool lockWasTaken             = false;
            List <BusinessDTO> businesses = new List <BusinessDTO>();

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    businesses = dbContext.Businesses.Where(x => x.User_Id == userID).Select(x => new BusinessDTO()
                    {
                        Business_Id = x.Business_Id, Creation_Date = x.Creation_Date, Name = x.Name, User_Id = x.User_Id
                    }).ToList();

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(businesses);
            }
        }
예제 #3
0
        public BusinessDTO GetBusiness(int businessID)
        {
            bool        lockWasTaken = false;
            BusinessDTO businessDTO  = null;

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    Business business = dbContext.Businesses.Where(x => x.Business_Id == businessID).FirstOrDefault();

                    if (business != null)
                    {
                        businessDTO = ConvertBusinessToBusinessDTO(business);
                    }

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(businessDTO);
            }
        }
예제 #4
0
        public List <ReservationDTO> GetMyReservations(int userID)
        {
            bool lockWasTaken = false;
            List <ReservationDTO> reservations = new List <ReservationDTO>();

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    reservations = dbContext.Reservations.Where(x => x.User_Id == userID).Select(x => new ReservationDTO()
                    {
                        Reservation_Id = x.Reservation_Id, Creation_Date = x.Creation_Date, Start_Time = x.Start_Time, Date = x.Date, End_Time = x.End_Time, User_Id = x.User_Id, Branch_Name = x.Field.Branch.Name, Field_Number = x.Field.Number
                    }).ToList();

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(reservations);
            }
        }
예제 #5
0
        public BranchDTO GetBranch(int branchID)
        {
            bool      lockWasTaken = false;
            BranchDTO branchDTO    = null;

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    Branch branch = dbContext.Branches.Where(x => x.Branch_Id == branchID).FirstOrDefault();

                    if (branch != null)
                    {
                        branchDTO = ConvertBranchToBranchDTO(branch);
                    }
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(branchDTO);
            }
        }
예제 #6
0
        public List <ReservationDTO> GetReservationsPerDay(string date, int fieldID)
        {
            bool lockWasTaken = false;
            List <ReservationDTO> reservations = new List <ReservationDTO>();
            DateTime datetime = Convert.ToDateTime(date);

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);
                    reservations = dbContext.Reservations.Where(x => x.Date == datetime && x.Field_Id == fieldID).Select(x => new ReservationDTO()
                    {
                        Reservation_Id = x.Reservation_Id, Creation_Date = x.Creation_Date, Start_Time = x.Start_Time, Date = x.Date, End_Time = x.End_Time, User_Id = x.User_Id
                    }).ToList();

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(reservations);
            }
        }
예제 #7
0
        private static void UpdatePhones(BranchDTO branchDTO, Branch branch, RampUpProjectEntities dbContext)
        {
            if (branch.Phones != null)
            {
                foreach (Phone phone in branch.Phones)
                {
                    if (phone.Phone_Id != 0)
                    {
                        dbContext.Entry(phone).State = System.Data.Entity.EntityState.Modified;
                    }
                    else
                    {
                        dbContext.Entry(phone).State = System.Data.Entity.EntityState.Added;
                    }
                }

                List <int>   phones            = branch.Phones.Select(y => y.Phone_Id).ToList();
                List <Phone> toBeDeletedPhones = dbContext.Phones.Where(x => !phones.Contains(x.Phone_Id) && x.Branch_Id == branchDTO.Branch_Id).ToList();

                foreach (Phone phone in toBeDeletedPhones)
                {
                    dbContext.Entry(phone).State = System.Data.Entity.EntityState.Deleted;
                }
            }
        }
예제 #8
0
        public ReservationDTO GetReservation(int reservationID)
        {
            bool           lockWasTaken   = false;
            ReservationDTO reservationDTO = null;

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    Reservation reservation = dbContext.Reservations.Where(x => x.Reservation_Id == reservationID).FirstOrDefault();

                    if (reservation != null)
                    {
                        reservationDTO = ConvertReservationToReservationDTO(reservation);
                    }

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(reservationDTO);
            }
        }
예제 #9
0
        public List <BranchDTO> GetBranchesByBusinessId(int businessID)
        {
            bool             lockWasTaken = false;
            List <BranchDTO> branchesDTO  = new List <BranchDTO>();

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    List <Branch> branches = dbContext.Branches.Where(x => x.Business_Id == businessID).ToList();

                    foreach (Branch branch in branches)
                    {
                        branchesDTO.Add(ConvertBranchToBranchDTO(branch));
                    }

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(branchesDTO);
            }
        }
예제 #10
0
        public bool IsUserRegistered(string email)
        {
            bool isRegistered = false;
            bool lockWasTaken = false;

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    User user = dbContext.Users.Where(x => x.Email == email).FirstOrDefault();

                    if (user != null)
                    {
                        isRegistered = true;
                    }

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }
            }

            return(isRegistered);
        }
예제 #11
0
        public User_PaymentDTO GetUser_Payment(int user_paymentID)
        {
            bool            lockWasTaken    = false;
            User_PaymentDTO user_paymentDTO = null;

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    User_Payment user_payment = dbContext.User_Payment.Where(x => x.User_Payment_Id == user_paymentID).FirstOrDefault();

                    if (user_payment != null)
                    {
                        user_paymentDTO = ConvertUser_PaymentToUser_PaymentDTO(user_payment);
                    }

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(user_paymentDTO);
            }
        }
예제 #12
0
        public List <FieldResultDTO> GetAllFields()
        {
            bool lockWasTaken = false;
            List <FieldResultDTO> fieldsDTO = new List <FieldResultDTO>();

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);
                    List <Field> fields = dbContext.Fields.ToList();

                    foreach (Field field in fields)
                    {
                        fieldsDTO.Add(ConvertFieldToFieldResultDTO(field));
                    }

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(fieldsDTO);
            }
        }
예제 #13
0
        public List <Payment_Method_RefDTO> GetPaymentMethods()
        {
            bool lockWasTaken = false;
            List <Payment_Method_RefDTO> paymentMethodsDTO = null;

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);

                    paymentMethodsDTO = dbContext.Payment_Method_Ref.Select(x => new Payment_Method_RefDTO()
                    {
                        Payment_Method_Ref_Id = x.Payment_Method_Ref_Id, Payment_Method = x.Payment_Method
                    }).ToList();

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }

                return(paymentMethodsDTO);
            }
        }
예제 #14
0
        public void UpdateBusiness(BusinessDTO businessDTO)
        {
            try {
                Business business = ConvertBusinessDTOToBusiness(businessDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Businesses.Attach(business);
                    dbContext.Entry(business).State = System.Data.Entity.EntityState.Modified;
                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #15
0
        public void UpdateField(FieldDTO fieldDTO)
        {
            try {
                Field field = ConvertFieldDTOToField(fieldDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Fields.Attach(field);
                    dbContext.Entry(field).State = System.Data.Entity.EntityState.Modified;
                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #16
0
        public FieldDTO AddField(FieldDTO fieldDTO)
        {
            try {
                Field field = ConvertFieldDTOToField(fieldDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Fields.Add(field);
                    dbContext.SaveChanges();
                }

                return(ConvertFieldToFieldDTO(field));
            } catch (Exception) {
                throw;
            }
        }
예제 #17
0
        public int AddBusiness(BusinessDTO businessDTO)
        {
            try {
                Business business = ConvertBusinessDTOToBusiness(businessDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Businesses.Add(business);
                    dbContext.SaveChanges();
                }

                return(business.Business_Id);
            } catch (Exception) {
                throw;
            }
        }
예제 #18
0
        public int AddUser_Payment(User_PaymentDTO user_paymentDTO)
        {
            try {
                User_Payment user_payment = ConvertUser_PaymentDTOToUser_Payment(user_paymentDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.User_Payment.Add(user_payment);
                    dbContext.SaveChanges();
                }

                return(user_payment.User_Payment_Id);
            } catch (Exception) {
                throw;
            }
        }
예제 #19
0
        public int AddReservation(ReservationDTO reservationDTO)
        {
            try {
                Reservation reservation = ConvertReservationDTOToReservation(reservationDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Reservations.Add(reservation);
                    dbContext.SaveChanges();
                }

                return(reservation.Reservation_Id);
            } catch (Exception) {
                throw;
            }
        }
예제 #20
0
        public BranchDTO AddBranch(BranchDTO branchDTO)
        {
            try {
                Branch branch = ConvertBranchDTOToBranch(branchDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Branches.Add(branch);
                    dbContext.SaveChanges();
                }

                return(ConvertBranchToBranchDTO(branch));
            } catch (Exception) {
                throw;
            }
        }
예제 #21
0
        public void RemoveUser_Payment(int user_paymentID)
        {
            try {
                User_Payment user_payment = new User_Payment()
                {
                    User_Payment_Id = user_paymentID
                };

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.User_Payment.Attach(user_payment);
                    dbContext.User_Payment.Remove(user_payment);
                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #22
0
        public void RemoveBranch(int branchID)
        {
            try {
                Branch branch = new Branch()
                {
                    Branch_Id = branchID
                };

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Branches.Attach(branch);
                    dbContext.Branches.Remove(branch);
                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #23
0
        public void RemoveReservation(int reservationID)
        {
            try {
                Reservation reservation = new Reservation()
                {
                    Reservation_Id = reservationID
                };

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Reservations.Attach(reservation);
                    dbContext.Reservations.Remove(reservation);
                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #24
0
        public void RemoveBusiness(int businessID)
        {
            try {
                Business business = new Business()
                {
                    Business_Id = businessID
                };

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Businesses.Attach(business);
                    dbContext.Businesses.Remove(business);
                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #25
0
        public void RemoveField(int fieldID)
        {
            try {
                Field field = new Field()
                {
                    Field_Id = fieldID
                };

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Fields.Attach(field);
                    dbContext.Fields.Remove(field);
                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #26
0
        public void UpdateUser(UserDTO userDTO)
        {
            try {
                User user = ConvertUserDTOToUser(userDTO);
                user.Password = Encryption.Encrypt(user.Password, encryptionKey);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    if (user.Phones != null)
                    {
                        foreach (Phone phone in user.Phones)
                        {
                            if (phone.Phone_Id != 0)
                            {
                                dbContext.Entry(phone).State = System.Data.Entity.EntityState.Modified;
                            }
                            else
                            {
                                dbContext.Entry(phone).State = System.Data.Entity.EntityState.Added;
                            }
                        }

                        List <int>   phones            = user.Phones.Select(y => y.Phone_Id).ToList();
                        List <Phone> toBeDeletedPhones = dbContext.Phones.Where(x => !phones.Contains(x.Phone_Id) && x.User_Id == userDTO.User_Id).ToList();

                        foreach (Phone phone in toBeDeletedPhones)
                        {
                            dbContext.Entry(phone).State = System.Data.Entity.EntityState.Deleted;
                        }
                    }

                    if (user.Address != null)
                    {
                        dbContext.Entry(user.Address).State = System.Data.Entity.EntityState.Modified;
                    }

                    dbContext.Users.Attach(user);
                    dbContext.Entry(user).State = System.Data.Entity.EntityState.Modified;

                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #27
0
        public UserDTO AddUser(UserDTO userDTO)
        {
            try {
                User user = ConvertUserDTOToUser(userDTO);
                user.Password = Encryption.Encrypt(user.Password, encryptionKey);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    dbContext.Users.Add(user);
                    dbContext.SaveChanges();
                }

                userDTO          = ConvertUserToUserDTO(user);
                userDTO.Password = Encryption.Decrypt(userDTO.Password, encryptionKey);

                return(userDTO);
            } catch (Exception) {
                throw;
            }
        }
예제 #28
0
        public List <BranchDTO> AddBranches(List <BranchDTO> branches)
        {
            try {
                foreach (BranchDTO branchDTO in branches)
                {
                    Branch branch = ConvertBranchDTOToBranch(branchDTO);

                    using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                        dbContext.Branches.Add(branch);
                        dbContext.SaveChanges();
                    }

                    branchDTO.Branch_Id = branch.Branch_Id;
                }
            } catch (Exception) {
                throw;
            }

            return(branches);
        }
예제 #29
0
        public void UpdateBranch(BranchDTO branchDTO)
        {
            try {
                Branch branch = ConvertBranchDTOToBranch(branchDTO);

                using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                    UpdatePhones(branchDTO, branch, dbContext);
                    UpdateFields(branchDTO, branch, dbContext);

                    if (branch.Address != null)
                    {
                        dbContext.Entry(branch.Address).State = System.Data.Entity.EntityState.Modified;
                    }

                    dbContext.Branches.Attach(branch);
                    dbContext.Entry(branch).State = System.Data.Entity.EntityState.Modified;

                    dbContext.SaveChanges();
                }
            } catch (Exception) {
                throw;
            }
        }
예제 #30
0
        public UserDTO Login(string email, SecureString password)
        {
            bool    lockWasTaken = false;
            UserDTO userDTO      = null;

            using (RampUpProjectEntities dbContext = new RampUpProjectEntities(rampConnectionString)) {
                try {
                    Monitor.Enter(dbContext, ref lockWasTaken);
                    string pass = Encryption.Encrypt(password.ConvertToUnsecureString(), encryptionKey);

                    User user = dbContext.Users.Where(x => x.Email == email && x.Password == pass).FirstOrDefault();

                    if (user != null)
                    {
                        userDTO          = ConvertUserToUserDTO(user);
                        userDTO.Password = Encryption.Decrypt(userDTO.Password, encryptionKey);
                    }

                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }
                } catch (Exception) {
                    if (lockWasTaken)
                    {
                        Monitor.Exit(dbContext);
                        lockWasTaken = false;
                    }

                    throw;
                }
            }

            return(userDTO);
        }