예제 #1
0
 /// <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);
     }
 }