public async Task <IHttpActionResult> GetUserId(string email) { if (string.IsNullOrWhiteSpace(email)) { return(Content(HttpStatusCode.BadRequest, $"A value for the parameter {nameof(email)} must be supplied.")); } ApplicationUserStore userStore = new ApplicationUserStore(db); ApplicationUser applicationUser = await userStore.FindByEmailAsync(email); if (applicationUser == null) { return(Content(HttpStatusCode.NotFound, $"A user with the given e-mail address {email} could not be found")); } return(Ok(applicationUser.Id)); }
public async Task <IHttpActionResult> Register(BusinessRegistrationData businessRegistrationData) { try { // if the user is null or the user is not authenticated if (!IsUserAuthenticated) { return(Content(HttpStatusCode.Unauthorized, "User must be logged in to create a business.")); } // check that the model is valid. if (ModelState.IsValid) { var newBusiness = new Business(); newBusiness.Name = businessRegistrationData.Name; var businessType = await db.BusinessTypes.FirstOrDefaultAsync(type => type.Name == businessRegistrationData.Type); if (businessType == null) { return(Content(HttpStatusCode.BadRequest, $"The given business type {businessRegistrationData.Type} could not be found in the database")); } // set the business type id. newBusiness.BusinessTypeId = businessType.Id; newBusiness.Address = businessRegistrationData.GetAddressString(); newBusiness.Postcode = businessRegistrationData.Postcode; newBusiness.Location = PostcodesService.Lookup(businessRegistrationData.Postcode); AddBusinessOpeningTime(newBusiness, DayOfWeek.Monday, businessRegistrationData.OpeningTimeMonday, businessRegistrationData.ClosingTimeMonday); AddBusinessOpeningTime(newBusiness, DayOfWeek.Tuesday, businessRegistrationData.OpeningTimeTuesday, businessRegistrationData.ClosingTimeTuesday); AddBusinessOpeningTime(newBusiness, DayOfWeek.Wednesday, businessRegistrationData.OpeningTimeWednesday, businessRegistrationData.ClosingTimeWednesday); AddBusinessOpeningTime(newBusiness, DayOfWeek.Thursday, businessRegistrationData.OpeningTimeThursday, businessRegistrationData.ClosingTimeThursday); AddBusinessOpeningTime(newBusiness, DayOfWeek.Friday, businessRegistrationData.OpeningTimeFriday, businessRegistrationData.ClosingTimeFriday); AddBusinessOpeningTime(newBusiness, DayOfWeek.Saturday, businessRegistrationData.OpeningTimeSaturday, businessRegistrationData.ClosingTimeSaturday); AddBusinessOpeningTime(newBusiness, DayOfWeek.Sunday, businessRegistrationData.OpeningTimeSunday, businessRegistrationData.ClosingTimeSunday); var ownerId = string.Empty; newBusiness.PhoneNumber = businessRegistrationData.ContactNumber; newBusiness.FaxNumber = businessRegistrationData.ContactFax; newBusiness.EmailAddress = businessRegistrationData.ContactEmail; // set the website. newBusiness.Website = businessRegistrationData.Website; if (!string.IsNullOrWhiteSpace(businessRegistrationData.OwnerEmailAddress)) { // if not an administrator return a 403 error var applicationUserStore = new ApplicationUserStore(db); var applicationUser = await applicationUserStore.FindByEmailAsync(businessRegistrationData.OwnerEmailAddress); ownerId = applicationUser.Id; } else { if (!IsUserAuthenticated) { return(BadRequest("user bad")); } ownerId = UserId; } newBusiness.Users.Add(new BusinessUser { UserId = ownerId, UserLevel = BusinessUserLevel.Owner }); db.Businesses.Add(newBusiness); await db.SaveChangesAsync(); return(Ok(ownerId)); } return(InvalidModel()); } catch (Exception exception) { return(Content(HttpStatusCode.BadRequest, $"Something happend {exception.Message}")); } }