123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- using ProRestaurant.Classes;
- using ProRestaurant.Containers;
- using ProRestaurant.DBContexts;
- using ProRestaurant.Models.Accounts;
- using ProRestaurant.Models.Restaurants;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
-
- namespace ProRestaurant.Repository.Accounts
- {
- public class RegistrationRepository : IRegistrationRepository
- {
- private readonly DBContext dBContext;
-
- public RegistrationRepository(DBContext _DB)
- {
- dBContext = _DB;
- }
-
- public RestaurantContainer GetRestaurantContainer()
- {
- var restaurantContainer = new RestaurantContainer
- {
- Name = "",
- Logo = "",
- MethodsOfPayment = "",
- ShopNumber = "",
- ShoppingCentre = "",
- GoogleMapUrl = "",
- StreetNumber = "",
- StreetName = "",
- Suburb = "",
- City = "",
- Provice = "",
- Country = "",
-
- };
-
- return restaurantContainer;
- }
-
- public UserContainer GetUserContainer()
- {
- var userContainer = new UserContainer()
- {
- FirstName = "",
- Surname = "",
- Cellphone = "",
- EmailAddress = "",
- Password = ""
- };
-
- return userContainer;
- }
-
- //public UserContainer Login(string UserName, string Password)
- //{
- // UserContainer returnObject = new UserContainer();
- // User user = dBContext.Users.Where(u => u.EmailAddress == UserName).FirstOrDefault();
-
- // if (user != null)
- // {
- // if (user.Password == Password)
- // {
- // returnObject.User = user;
- // returnObject.ResultString = "Access Granted";
- // }
- // else
- // returnObject.ResultString = "Password incorrect";
- // }
- // else
- // {
- // returnObject.ResultString = "User not found";
- // }
- // return returnObject;
- //}
-
- public RestaurantContainer RegisterRestaurant(RestaurantContainer RestaurantContainer)
- {
- var restaurantCheck = dBContext.Restaurants.Where(r => r.Name == RestaurantContainer.Name && r.Suburb == RestaurantContainer.Suburb && r.City == RestaurantContainer.City && r.Provice == RestaurantContainer.Provice && r.Country == RestaurantContainer.Country).FirstOrDefault();
- if (restaurantCheck != null)
- {
- RestaurantContainer.Result = "A Restaurant with the same name has already been registered in this location. ";
- return RestaurantContainer;
- }
-
- var checkUser = dBContext.Users.Where(u => u.EmailAddress == RestaurantContainer.UserEmailAddress).FirstOrDefault();
- if (checkUser != null)
- {
- RestaurantContainer.Result = "A User with this email address already exists. Please use an different Email Address if this Email Address was used for an individule user.";
- return RestaurantContainer;
- }
-
- var user = new User
- {
- FirstName = RestaurantContainer.UserFirstName,
- Surname = RestaurantContainer.UserSurname,
- EmailAddress = RestaurantContainer.UserEmailAddress,
- Password = RestaurantContainer.UserPassword,
- SystemRole = Classes.SystemRole.RestaurantAdmin
- };
-
- var restaurant = new Restaurant
- {
- Name = RestaurantContainer.Name,
- DeliveryTime = RestaurantContainer.DeliveryTime,
- DeliveryFee = RestaurantContainer.DeliveryFee,
- DeliveryRadius = RestaurantContainer.DeliveryRadius,
- MethodsOfPayment = RestaurantContainer.MethodsOfPayment,
- ShoppingCentre = RestaurantContainer.ShoppingCentre,
- ShopNumber = RestaurantContainer.ShopNumber,
- GoogleMapUrl = RestaurantContainer.GoogleMapUrl,
- Latitude = RestaurantContainer.Latitude,
- Longitude = RestaurantContainer.Longitude,
- StreetNumber = RestaurantContainer.StreetNumber,
- StreetName = RestaurantContainer.StreetName,
- Suburb = RestaurantContainer.Suburb,
- City = RestaurantContainer.City,
- Provice = RestaurantContainer.Provice,
- Country = RestaurantContainer.Country,
- PostalCode = RestaurantContainer.PostalCode,
- Categories = RestaurantContainer.Categories
- };
-
- if (!string.IsNullOrEmpty(restaurant.MethodsOfPayment))
- {
- restaurant.MethodsOfPayment = restaurant.MethodsOfPayment.Substring(0, restaurant.MethodsOfPayment.Length - 1);
- }
-
- if (!string.IsNullOrEmpty(restaurant.Categories))
- {
- restaurant.Categories = restaurant.Categories.Substring(0, restaurant.Categories.Length - 1);
- restaurant.Categories = restaurant.Categories.Replace("|", " - ");
- }
-
- if (!string.IsNullOrEmpty(RestaurantContainer.Logo))
- {
- bool saveFile = false;
- var loc = dBContext.Locations.FirstOrDefault()?.ImageStore;
- if (!string.IsNullOrEmpty(loc))
- {
- var folderName = restaurant.Name + string.Format("{0:yyyy_MM_dd_hh_mm_ss}", DateTime.Now);
- saveFile = true;
- loc += string.Format("{0}", folderName);
- if (!Directory.Exists(loc))
- {
- Directory.CreateDirectory(loc);
- }
-
- if (saveFile)
- {
- string path = ImageFormatter.Base64ToImage(RestaurantContainer.Logo, loc, restaurant.Name.Trim());
- restaurant.Logo = path;
- }
- }
-
- if (!saveFile)
- restaurant.Logo = RestaurantContainer.Logo;
- }
-
- var rUser = new RestaurantUser
- {
- Restaurant = restaurant,
- User = user
- };
-
- restaurant.Users = new List<RestaurantUser>() { rUser };
-
- if (RestaurantContainer.THours != null && RestaurantContainer.THours.Count > 0)
- {
- restaurant.TradingHours = new List<TradingHours>();
- foreach (var t in RestaurantContainer.THours)
- {
- restaurant.TradingHours.Add(new TradingHours()
- {
- Description = t.Description,
- OpeningTime = DateTime.Parse(string.Format("{0} {1}", string.Format("{0:yyyy/MM/dd}", DateTime.Now), t.From)),
- ClosingTime = DateTime.Parse(string.Format("{0} {1}", string.Format("{0:yyyy/MM/dd}", DateTime.Now), t.To)),
- Closed = t.Closed,
- Opened24H = t.Open24
- });
- }
- }
-
- dBContext.Add(restaurant);
- Save();
-
- return RestaurantContainer;
- }
-
- public UserContainer RegisterUser(UserContainer UserContainer)
- {
- var checkUser = dBContext.Users.Where(u => u.EmailAddress == UserContainer.EmailAddress).FirstOrDefault();
- if (checkUser != null)
- {
- UserContainer.ResultString = "A User with this email address already exists.";
- UserContainer.Password = "";
- return UserContainer;
- }
-
- var user = new User
- {
- FirstName = UserContainer.FirstName,
- Surname = UserContainer.Surname,
- Cellphone = UserContainer.Cellphone,
- EmailAddress = UserContainer.EmailAddress,
- Password = UserContainer.Password,
- SystemRole = Classes.SystemRole.Customer
- };
-
- dBContext.Add(user);
- Save();
-
- UserContainer.Id = user.Id;
- UserContainer.ResultString = "User Created";
-
- return UserContainer;
- }
-
- public void Save()
- {
- dBContext.SaveChanges();
- }
- }
- }
|