public ResponseViewModel <BusinessEmployeeViewModel> Register(BusinessEmployeeViewModel model) { var data = new ResponseViewModel <BusinessEmployeeViewModel>(); var hasEmail = _db.tblBusinessEmployees.Any(d => d.Email.ToLower() == model.Email.ToLower() && d.ServiceLocationId == model.ServiceLocationId); if (hasEmail) { data.Status = false; data.Message = "This business email has been taken. Please try another email id."; } else { var businessEmployee = new tblBusinessEmployee() { FirstName = model.FirstName, LastName = model.LastName, Password = Security.Encrypt(model.Password, true), Email = model.Email, STD = model.STD, PhoneNumber = model.PhoneNumber, ServiceLocationId = model.ServiceLocationId, IsAdmin = model.IsAdmin, Created = DateTime.Now.ToUniversalTime(), IsActive = model.IsActive }; _db.tblBusinessEmployees.Add(businessEmployee); var response = _db.SaveChanges(); data.Message = response > 0 ? "success" : "failed"; data.Status = response > 0 ? true : false; data.Data = model; } return(data); }
// POST: api/businessemployee public IHttpActionResult Post([FromBody] BusinessEmployeeViewModel model) { try { if (model != null) { var check = _db.tblBusinessEmployees.Any(d => d.Email.ToLower() == model.Email.ToLower() && model.ServiceLocationId == model.ServiceLocationId); if (!check) { var businessEmployee = new tblBusinessEmployee() { FirstName = model.FirstName, LastName = model.LastName, Password = Security.Encrypt(model.Password, true), Email = model.Email, STD = model.STD, PhoneNumber = model.PhoneNumber, ServiceLocationId = model.ServiceLocationId, IsAdmin = model.IsAdmin, Created = DateTime.Now.ToUniversalTime(), IsActive = model.IsActive }; _db.tblBusinessEmployees.Add(businessEmployee); var response = _db.SaveChanges(); if (response > 0) { return(Ok(new { status = true, data = businessEmployee, message = "success" })); } else { return(Ok(new { status = false, data = "", message = "There was a problem." })); } } else { return(Ok(new { status = false, data = "", message = "Email id has already been taken, please try another email id with same service location." })); } } else { return(Ok(new { status = false, data = "", message = "Model is not valid." })); } } catch (Exception ex) { return(Ok(new { status = false, data = "", message = ex.Message.ToString() })); } }
// POST: api/businessemployee public IHttpActionResult Post([FromBody] BusinessEmployeeViewModel model) { try { if (model != null) { var businessEmployee = new tblBusinessEmployee() { FirstName = model.FirstName, LastName = model.LastName, LoginId = model.LoginId, Password = Security.Encrypt(model.Password, true), Email = model.Email, STD = model.STD, PhoneNumber = model.PhoneNumber, ServiceLocationId = model.ServiceLocationId, IsAdmin = model.IsAdmin, Created = DateTime.Now.ToUniversalTime(), IsActive = model.IsActive }; _db.tblBusinessEmployees.Add(businessEmployee); var response = _db.SaveChanges(); if (response > 0) { return(Ok(new { status = true, data = businessEmployee })); } else { return(Ok(new { status = false, data = "There was a problem." })); } } else { return(Ok(new { status = false, data = "Model is not valid." })); } } catch (Exception ex) { return(Ok(new { status = false, data = "", message = ex.Message.ToString() })); } }
public ResponseViewModel <RegisterViewModel> Register(RegisterViewModel model) { var data = new ResponseViewModel <RegisterViewModel>(); var hasName = _db.tblBusinesses.Any(d => d.Name.ToLower() == model.Business.Name.ToLower()); var hasEmail = _db.tblBusinessEmployees.Any(d => d.Email.ToLower() == model.Business.Email.ToLower()); if (hasName) { data.Status = false; data.Message = "This business name has been taken. Please try another name."; } else if (hasEmail) { data.Status = false; data.Message = "This business email has been taken. Please try another email id."; } else { using (var dbTran = _db.Database.BeginTransaction()) { try { var business = new tblBusiness() { Name = model.Business.Name, ShortName = model.Business.ShortName, IsInternational = model.Business.IsInternational, FaxNumbers = model.Business.FaxNumbers, PhoneNumbers = model.Business.PhoneNumbers, Logo = model.Business.Logo, Add1 = model.Business.Add1, Add2 = model.Business.Add2, City = model.Business.City, State = model.Business.State, CountryId = model.Business.CountryId, Email = model.Business.Email, Website = model.Business.Website, Created = DateTime.Now.ToUniversalTime(), IsActive = model.Business.IsActive, Zip = model.Business.Zip, MembershipId = model.Business.MembershipId, BusinessCategoryId = model.Business.BusinessCategoryId, TimezoneId = model.Business.TimezoneId }; _db.tblBusinesses.Add(business); var responseBusiness = _db.SaveChanges(); var serviceLocation = new tblServiceLocation() { Name = "Main Address", Add1 = model.Business.Add1, Add2 = model.Business.Add2, City = model.Business.City, State = model.Business.State, CountryId = model.Business.CountryId.Value, Created = DateTime.Now.ToUniversalTime(), IsActive = model.Business.IsActive, Zip = model.Business.Zip, BusinessId = business.Id, TimezoneId = business.TimezoneId, Description = "" }; _db.tblServiceLocations.Add(serviceLocation); var responseServiceLocation = _db.SaveChanges(); //Setup default business hours //var businessHourController = new BusinessHourController(); //var responseBusinessHour = businessHourController.SetupBusinessHours(serviceLocation.Id); var today = DateTime.Now; var date = new DateTime(today.Year, today.Month, today.Day, 8, 00, 00, DateTimeKind.Utc); for (int i = 0; i < 7; i++) { var businessHour = new tblBusinessHour() { WeekDayId = i, IsStartDay = i == 0 ? true : false, IsHoliday = false, From = date, To = date.AddHours(10), IsSplit1 = false, FromSplit1 = null, ToSplit1 = null, IsSplit2 = false, FromSplit2 = null, ToSplit2 = null, ServiceLocationId = serviceLocation.Id }; _db.tblBusinessHours.Add(businessHour); } var responseBusinessHour = _db.SaveChanges(); //End var businessEmployee = new tblBusinessEmployee() { FirstName = model.Employee.FirstName, LastName = model.Employee.LastName, Password = Security.Encrypt(model.Employee.Password, true), Email = model.Employee.Email, STD = model.Employee.STD, PhoneNumber = model.Employee.PhoneNumber, ServiceLocationId = serviceLocation.Id, IsAdmin = true, Created = DateTime.Now.ToUniversalTime(), IsActive = true }; _db.tblBusinessEmployees.Add(businessEmployee); var responseBusinessEmployee = _db.SaveChanges(); var businessViewModel = new BusinessViewModel() { Add1 = business.Add1, Add2 = business.Add2, BusinessCategoryId = business.BusinessCategoryId, City = business.City, CountryId = business.CountryId, Created = business.Created, Email = business.Email, FaxNumbers = business.FaxNumbers, Id = business.Id, IsActive = business.IsActive, IsInternational = business.IsInternational, Logo = business.Logo, MembershipId = business.MembershipId, Name = business.Name, PhoneNumbers = business.PhoneNumbers, ShortName = business.ShortName, State = business.State, TimezoneId = business.TimezoneId, Website = business.Website, Zip = business.Zip }; var businessEmployeeViewModel = new BusinessEmployeeViewModel() { Created = businessEmployee.Created, Email = businessEmployee.Email, FirstName = businessEmployee.FirstName, Id = businessEmployee.Id, IsActive = businessEmployee.IsActive, IsAdmin = businessEmployee.IsAdmin, LastName = businessEmployee.LastName, PhoneNumber = businessEmployee.PhoneNumber, ServiceLocationId = businessEmployee.ServiceLocationId, STD = businessEmployee.STD }; if (responseBusiness > 0 && responseServiceLocation > 0 && responseBusinessEmployee > 0 && responseBusinessHour > 0) { data.Status = true; data.Message = "Transaction successed."; data.Data = new RegisterViewModel(); data.Data.Business = new BusinessViewModel(); data.Data.Employee = new BusinessEmployeeViewModel(); data.Data.Business = businessViewModel; data.Data.Employee = businessEmployeeViewModel; dbTran.Commit(); } else { data.Status = false; var reason = ""; if (responseBusiness <= 0) { reason += "Business setup issue. "; } if (responseServiceLocation <= 0) { reason += " Service location issue."; } if (responseBusinessEmployee <= 0) { reason += " Business employee issue."; } if (responseBusinessHour <= 0) { reason += " Business hour issue."; } data.Message = "Registration failed. reason: " + reason; data.Data.Business = new BusinessViewModel(); data.Data.Employee = new BusinessEmployeeViewModel(); dbTran.Rollback(); } } catch (Exception ex) { data.Status = false; data.Message = "Registration failed. ex: " + ex.Message.ToString(); data.Data.Business = new BusinessViewModel(); data.Data.Employee = new BusinessEmployeeViewModel(); dbTran.Rollback(); } } } return(data); }