public HttpResponseMessage RoadZenAccountProviderRegistration(ProviderRegistrationRequest registrationRequest) { Services.Log.Info("New Account Provider Registration Request [API]"); // Phone Number SS Validation if (!Regex.IsMatch(registrationRequest.Phone, "^[0-9]{10}$")) { Services.Log.Warn("Invalid phone number (must be 10 numeric digits"); return this.Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid phone number (must be 10 numeric digits"); } if (!RegexUtilities.IsValidEmail(registrationRequest.Email)) { Services.Log.Warn("Invalid e-mail address"); return this.Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid e-mail address"); } // Get the logged-in user. var currentUser = this.User as ServiceUser; stranddContext context = new stranddContext(); Account account = context.Accounts.Where(a => a.Phone == registrationRequest.Phone).SingleOrDefault(); if (account != null) { string responseText = "Phone Number Already Registered"; Services.Log.Warn(responseText); return this.Request.CreateResponse(HttpStatusCode.BadRequest, WebConfigurationManager.AppSettings["RZ_MobileClientUserWarningPrefix"] + responseText); } //Password SS Validation if (registrationRequest.Password.Length < 6) { Services.Log.Warn("Invalid password (at least 6 chars required)"); return this.Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid password (at least 6 chars required)"); } byte[] salt = RoadZenSecurityUtils.generateSalt(); Guid guid = Guid.NewGuid(); Account newUserAccount = new Account { Id = guid.ToString(), Name = registrationRequest.Name, Phone = registrationRequest.Phone, Email = registrationRequest.Email, ProviderUserID = "RoadZen:" + guid.ToString("N").ToUpper(), Salt = salt, SaltedAndHashedPassword = RoadZenSecurityUtils.hash(registrationRequest.Password, salt) }; context.Accounts.Add(newUserAccount); context.SaveChanges(); Services.Log.Info("Account for [" + newUserAccount.ProviderUserID + "] has been created"); return this.Request.CreateResponse(HttpStatusCode.Created, "Account for [" + newUserAccount.ProviderUserID + "] has been created"); }
public AccountExcelData(Account baseAccount) { this.Id = baseAccount.Id; this.Phone = baseAccount.Phone; this.Name = baseAccount.Name; this.Email = baseAccount.Email; this.ProviderUserID = baseAccount.ProviderUserID; this.Salt = System.Convert.ToString( baseAccount.Salt); this.SaltedAndHashedPassword = System.Convert.ToString(baseAccount.SaltedAndHashedPassword); this.Version = System.Convert.ToString( baseAccount.Version); this.RegisterDate = (baseAccount.CreatedAt != null) ? (DateTimeOffset) baseAccount.CreatedAt : DateTimeOffset.MinValue; this.UpdatedAt = (baseAccount.UpdatedAt != null) ? (DateTimeOffset)baseAccount.UpdatedAt : DateTimeOffset.MinValue; this.Deleted = System.Convert.ToString( baseAccount.Deleted); stranddContext context = new stranddContext(); int SubmittedCount = context.Incidents.Count(u => u.ProviderUserID == baseAccount.ProviderUserID); this.IncidentSubmittedCount = System.Convert.ToString(SubmittedCount); }