public ViewModels.Site Save(ViewModels.RegisterSite site) { try { if (!ValidateSite(site)) { base.ValidationFailed(); return(null); } base.ValidationPassed(); DataModels.Site dbSite = new DataModels.Site(); dbSite.HoursPerDay = site.HoursPerDay; dbSite.IncludeWeekends = site.IncludeWeekends; dbSite.Name = site.Name; dbSite.UniqueSiteId = site.UniqueSiteId; dbSite.PublicIdentifier = Guid.NewGuid(); this.context.Site.Add(dbSite); this.context.SaveChanges(); ViewModels.Site viewSite = new ViewModels.Site(); viewSite.UniqueSiteId = dbSite.UniqueSiteId; viewSite.HoursPerDay = dbSite.HoursPerDay; viewSite.ID = dbSite.PublicIdentifier; viewSite.IncludeWeekends = dbSite.IncludeWeekends; viewSite.Name = dbSite.Name; return(viewSite); } catch (Exception e) { base.SetError(e.Message); return(null); } }
public ViewModels.Site GetSite(Guid id) { try { DataModels.Site site = this.context.Site.Where(f => f.PublicIdentifier == id).FirstOrDefault(); if (site == null) { base.ValidationFailed(); return(null); } base.ValidationPassed(); ViewModels.Site viewSite = new ViewModels.Site(); viewSite.HoursPerDay = site.HoursPerDay; viewSite.IncludeWeekends = site.IncludeWeekends; viewSite.Name = site.Name; viewSite.ID = site.PublicIdentifier; return(viewSite); } catch (Exception e) { base.SetError(e.Message); return(null); } }
public ViewModels.User Save(ViewModels.RegisterUser user) { try { if (!ValidateUser(user)) { base.ValidationFailed(); return(null); } base.ValidationPassed(); DataModels.User dbUser = new DataModels.User(); dbUser.CreatedDate = DateTime.Now; dbUser.EmailAddress = user.EmailAddress; dbUser.FirstName = user.FirstName; dbUser.LastName = user.LastName; dbUser.PasswordHash = hashGenerator.CalculateHash(user.Password); dbUser.PublicIdentifier = Guid.NewGuid(); DataModels.Site site = null; if (this.configuration["SingleSiteMode"].ToLower() == "true") { site = this.context.Site.FirstOrDefault(); dbUser.Site = site; } if (this.context.User.Count() == 0) { //Congrats you are the site admin! dbUser.Role = this.context.Role.Where(x => x.ID == 1).FirstOrDefault(); } else { //Lowly team member dbUser.Role = this.context.Role.Where(x => x.ID == 4).FirstOrDefault(); } this.context.User.Add(dbUser); this.context.SaveChanges(); ViewModels.User viewUser = new ViewModels.User(); viewUser.FirstName = dbUser.FirstName; viewUser.LastName = dbUser.LastName; viewUser.EmailAddress = dbUser.EmailAddress; viewUser.UserSite = site.PublicIdentifier; viewUser.userId = dbUser.PublicIdentifier; return(viewUser); } catch (Exception e) { base.SetError(e.Message); return(null); } }
private bool ValidateUser(ViewModels.RegisterUser user) { if (String.IsNullOrEmpty(user.FirstName) || user.FirstName.Length > 50) { return(false); } if (String.IsNullOrEmpty(user.LastName) || user.LastName.Length > 50) { return(false); } if (String.IsNullOrEmpty(user.EmailAddress) || user.EmailAddress.Length > 50) { return(false); } DataModels.Site site = null; if (this.configuration["SingleSiteMode"].ToLower() == "true") { site = this.context.Site.FirstOrDefault(); if (site == null) { return(false); } } else { //Halt registration for now return(false); } //TODO: Update basic Repo class to allow setting validation error message (enum or code that client can display) DataModels.User[] users = this.context.User.Where(x => x.EmailAddress == user.EmailAddress).ToArray(); if (users.Count() > 0) { return(false); } return(true); }