public ActionResult Create(RegisterModel reg) { try { if (!ModelState.IsValid) { return(View("Create", reg)); } SenderModel sender = new SenderModel(reg.Cpr, reg.FirstName, reg.LastName, reg.PhoneNumber, reg.Email, reg.Address + ", " + reg.Number, reg.ZipCode, reg.City) { AccountType = (int)AccountTypeEnum.SENDER, Password = reg.Password, Username = reg.Username, Points = 0 }; var salt = Guid.NewGuid().ToString(); int ret = _proxy.AddSender(new SenderResource { AccountType = sender.AccountType, Address = sender.Address, City = sender.City, Cpr = sender.Cpr, Email = sender.Email, FirstName = sender.FirstName, LastName = sender.LastName, Password = sender.Password, PassSalt = salt, PhoneNumber = sender.PhoneNumber, Points = sender.Points, Username = sender.Username, ZipCode = sender.ZipCode }); switch (ret) { case 1: return(RedirectToAction("Index")); case 0: return(View("Create", reg)); case -1: { ModelState.AddModelError("Cpr", "This CPR is already registered"); return(View("Create", reg)); } case -2: { ModelState.AddModelError("Email", "This email is already registered"); return(View("Create", reg)); } case -3: { ModelState.AddModelError("Username", "This username is taken"); return(View("Create", reg)); } } return(RedirectToAction("Index")); } catch { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } }