/// <summary> /// Adding or Updating Customer in a database /// </summary> /// <param name="customer">Business Object Customer</param> /// <returns>True if succeeded and false otherwise</returns> public async Task <bool> SaveCustomer(DtoCustomer customer) { try { using (var data = Context) { var c = await (from item in data.Customer where customer.Id == item.id select item).FirstOrDefaultAsync(); // Updating Customer if (c != null) { c.name = customer.Name; c.surname = customer.Surname; c.street = customer.Street; c.postalCode = customer.PostalCode; c.phoneNumber = customer.PhoneNumber; c.personalIdentityNumber = customer.PersonalIdentityNumber; c.identityCardNumber = customer.IdentityCardNumber; c.icePhoneNumber = customer.IcePhoneNumber; c.houseNumber = customer.HouseNumber; c.email = customer.Email; c.city = customer.City; c.apartmentNumber = customer.ApartmentNumber; c.password = AuthenticationLogic.HashPassword(customer.Password, customer); } // Adding new Customer else { if ( await (from item in data.Customer where customer.PersonalIdentityNumber == item.personalIdentityNumber select item).AnyAsync()) { return(false); } data.Customer.Add(CustomerConverter.DtoToDataAccess(customer)); } await data.SaveChangesAsync(); } return(true); } catch (Exception) { return(false); } }