public async Task <IActionResult> FirstRegisterStore(RegisterStoreViewModel registerStoreViewModel) { if (!(registerStoreViewModel.StoreLicence == Guid.Empty)) { var LicenseValid = storeLicenseDataStore.StoreLicenseExists(registerStoreViewModel.StoreLicence); if (LicenseValid) { if (registerStoreViewModel.File != null) { var ImgToBty = ConvertToBytes(registerStoreViewModel.File); var StoreId = Guid.NewGuid(); var listWorkHour = new List <WorkHour>(); var MondayWH = new WorkHour() { WorkHourId = Guid.NewGuid(), Day = DayOfWeek.Monday.ToString(), OpenTime = registerStoreViewModel.MOpenTime, CloseTime = registerStoreViewModel.MCloseTime }; var TuesdayWH = new WorkHour() { WorkHourId = Guid.NewGuid(), Day = DayOfWeek.Tuesday.ToString(), OpenTime = registerStoreViewModel.TOpenTime, CloseTime = registerStoreViewModel.TCloseTime }; var WednesdayWH = new WorkHour() { WorkHourId = Guid.NewGuid(), Day = DayOfWeek.Wednesday.ToString(), OpenTime = registerStoreViewModel.WOpenTime, CloseTime = registerStoreViewModel.WCloseTime }; var ThuerdayWH = new WorkHour() { WorkHourId = Guid.NewGuid(), Day = DayOfWeek.Thursday.ToString(), OpenTime = registerStoreViewModel.ThOpenTime, CloseTime = registerStoreViewModel.ThCloseTime }; var FridayWH = new WorkHour() { WorkHourId = Guid.NewGuid(), Day = DayOfWeek.Friday.ToString(), OpenTime = registerStoreViewModel.FOpenTime, CloseTime = registerStoreViewModel.FCloseTime }; var SaturdayWH = new WorkHour() { WorkHourId = Guid.NewGuid(), Day = DayOfWeek.Saturday.ToString(), OpenTime = registerStoreViewModel.SOpenTime, CloseTime = registerStoreViewModel.SCloseTime }; var SundayWH = new WorkHour() { WorkHourId = Guid.NewGuid(), Day = DayOfWeek.Sunday.ToString(), OpenTime = registerStoreViewModel.SuOpenTime, CloseTime = registerStoreViewModel.SuCloseTime }; listWorkHour.Add(MondayWH); listWorkHour.Add(TuesdayWH); listWorkHour.Add(WednesdayWH); listWorkHour.Add(ThuerdayWH); listWorkHour.Add(FridayWH); listWorkHour.Add(SaturdayWH); listWorkHour.Add(SundayWH); var newStore = new Store() { StoreId = StoreId, /////////////////////////CHANGE Dev/////////////////////// StoreName = registerStoreViewModel.StoreName, WorkHours = listWorkHour, StoreImage = ImgToBty, StoreRegisterLicenseId = registerStoreViewModel.StoreLicence, UserId = LogUser.LoginUser.UserId, StoreType = registerStoreViewModel.SelectedStoreType, StoreDescription = registerStoreViewModel.StoreDescription, SKKey = registerStoreViewModel.StripeSecretKey, PBKey = registerStoreViewModel.StripePublicKey }; var newStoreAddedResult = await StoreDataStore.AddItemAsync(newStore); var result = userDataStore.CheckUserCredential(LogUser.LoginUser.UserLogin.Username, LogUser.LoginUser.UserLogin.Password); LogUser.LoginUser = result; if (newStoreAddedResult) { return(RedirectToAction("HomeStore", new { StoreId = newStore.StoreId })); } else { return(View()); } } else { return(View()); } } else { ViewBag.LicenseError = "License is not valid."; return(View()); } } else { return(View()); } }
public async Task <IActionResult> UserRegistration(UserViewModel userVm) { if (UserInfoNotNullOrEmpty(userVm)) { if (userVm.Password == userVm.ConfirmPassword) { var credentialExist = await userDataStore.CheckIfUsernameAndPasswordExist(userVm.Username, userVm.Password); if (!credentialExist) { //Las credenciales de entrada del usuario var userLogin = new Login() { LoginId = Guid.NewGuid(), Password = userVm.Password, Username = userVm.Username }; //Creamos el usuario var newUser = new User() { UserId = Guid.NewGuid(), Email = userVm.Email, LoginId = userLogin.LoginId, Name = userVm.Name, UserLogin = userLogin, Address = userVm.Address }; //Obtenemos datos de empleados necesarios para el registro en stripe var optionsCustomers = new UserDTO { Name = userVm.Name, Email = userVm.Email, Phone = userVm.Phone, Address = userVm.Address, }; //Creamos un nuevo usuario en stripe var customerToken = await StripeServiceDS.CreateStripeCustomer(optionsCustomers); //Le insertamos la tarjeta al nuevo usuario de stripe var cardservicetokenId = await StripeServiceDS.InsertStripeCardToCustomer(PaymentCard, customerToken); //Creamos la subcripcion al usuario var subcriptiontoken = await StripeServiceDS.CreateACustomerSubcription(customerToken); //Verificamos que la informacion este correcta if (!string.IsNullOrEmpty(subcriptiontoken)) { //Le damos el id del nuevo customer de la cuenta de stripe. newUser.StripeUserId = customerToken; //Lo agregamos a la base de datos. var addedUser = await userDataStore.AddItemAsync(newUser); //Verificamos si el usuario se inserto a nuestra base de datos if (addedUser) { //Verificamos si el token de la tarjeta insertada es correcta. if (!string.IsNullOrEmpty(cardservicetokenId)) { //Agregamos la tarjeta a nuestra base de datos. var cardadded = cardDataStore.AddItemAsync(new PaymentCard() { UserId = newUser.UserId, StripeCardId = cardservicetokenId, CardNumber = PaymentCard.CardNumber, Cvc = PaymentCard.Cvc, Month = PaymentCard.Month, Year = PaymentCard.Year, HolderName = PaymentCard.HolderName, PaymentCardId = Guid.NewGuid() }); } //Creamos el lincense var newStoreLicense = new StoreLicense() { LicenseId = Guid.NewGuid(), StartDate = DateTime.Today, LicenseHolderUserId = newUser.UserId }; //Lo insertamos a nuestra base de datos var storelicenceresult = await storeLicenseDataStore.AddItemAsync(newStoreLicense); //Verificamos el resultado if (storelicenceresult) { var subcription = new Subcription() { IsDisable = false, StripeCustomerId = customerToken, StripeSubCriptionID = subcriptiontoken, StoreLicense = newStoreLicense.LicenseId }; var result = SubcriptionDataStore.AddItemAsync(subcription); //Enviamos el email con el codio de la nueva licensia. SendStoreLicenceEmailCode(newUser.Email, newStoreLicense.LicenseId.ToString()); } //Verificamos que los credenciales esten correctos. var resultCredentials = userDataStore.CheckUserCredential(userLogin.Username, userLogin.Password); //Validamos que el resultado no sea vacio if (resultCredentials != null) { //Le damos los credenciales al LogUser LogUser.LoginUser = resultCredentials; } //Luego de todo completado de manera correcta nos vamos a registrar una tienda. return(RedirectToAction("RegisterStore", "Store")); } } else { return(View()); } } else { ViewBag.ErrorMsg = "The creditals already exists."; return(View()); } } else { ViewBag.ErrorMsg = "The password and confirm pasword are different."; return(View()); } } return(View()); }
//Sign In Action public async Task <IActionResult> Index(LoginViewModel loginViewModel) { if (LoginInfoNotNullOrEmpty(loginViewModel)) { var result = userDataStore.CheckUserCredential(loginViewModel.Username, loginViewModel.Password); LogUser.Token = userDataStore.LoginCredential(loginViewModel.Username, loginViewModel.Password); if (result != null) { LogUser.ComunicationService = new ComunicationService(); Task.Run(async() => { await LogUser.ComunicationService.Connect(); }).Wait(); LogUser.LoginUser = result; LogUser.UsersConnected = new UsersConnected() { HubConnectionID = LogUser.ComunicationService.hubConnection.ConnectionId, UserID = result.UserId, IsDisable = false, ConnecteDate = DateTime.Now }; bool isConnectionWasModify = await userConnectedDataStore.ModifyOldConnections(LogUser.UsersConnected); var hub_connection_result = await userConnectedDataStore.AddItemAsync(LogUser.UsersConnected); var stores = new List <Store>(result.Stores.Where(s => s.IsDisable == false)); LogUser.LoginUser.Stores = stores; if (stores.Count() > 0) { SelectedStore.CurrentStore = stores[0]; } else { return(RedirectToAction("RegisterControl", "Store")); } return(RedirectToAction("HomeStore", "Store", new { StoreId = SelectedStore.CurrentStore.StoreId })); } else { ViewBag.ErrorMsg = "Error"; return(View()); } } else { return(View()); } }