public void Save(UserItem item) { var errors = item.GetValidationErrors(); if (item.Id == 0 && item.Password.IsEmptyOrWhiteSpace()) { errors.Add(new DbValidationError("Password is empty, please provide password for new user")); } errors.ThrowIfHasErrors(); User user; if (item.Id == 0) { user = Db.CreateAndAdd <User>(); user.Password = item.Password.ToHash(); } else { user = Db.Users.Single(x => x.Id == item.Id); if (item.Password.IsNotEmptyOrWhiteSpace()) { user.Password = item.Password.ToHash(); } } user.Email = item.Email; user.FirstName = item.FirstName; user.LastName = item.LastName; user.Phone = item.Phone; user.Role = item.Role ?? 0; Db.SaveChanges(); item.Id = user.Id; }