public Email(MainEmail mainEmail, GuestNumber guestNumber, IEnumerable <Guest> guestList, AdditionalInfo additionalInfo, NeedHotel needHotel, NeedDrive needDrive) { MainEmail = mainEmail; GuestNumber = guestNumber; GuestList = guestList; AdditionalInfo = additionalInfo; NeedHotel = needHotel; NeedDrive = needDrive; Validate(); }
public static Email MapFromDto(EmailDTO dto) { var mainEmail = new MainEmail { Value = dto.MainEmail }; var guestNumber = new GuestNumber { Value = dto.GuestNumber }; var guestList = dto.GuestList.Select(GuestDTO.MapFromDto).ToList(); var additionalInfo = new AdditionalInfo { Value = dto.AdditionalInfo }; var needHotel = new NeedHotel { Value = dto.NeedHotel }; var needDrive = new NeedDrive { Value = dto.NeedDrive }; return(new Email(mainEmail, guestNumber, guestList, additionalInfo, needHotel, needDrive)); }
public async Task <ApiResponse <CustomerInfoDTO> > GuestLogin() { ApiResponse <CustomerInfoDTO> result = new ApiResponse <CustomerInfoDTO>(); try { var currentGuestNumberResult = await unitOfWork.GuestNumberManager.GetAsync(); List <GuestNumber> currentGuestNumberList = currentGuestNumberResult.ToList(); if (currentGuestNumberList.Count == 0) { GuestNumber initialGuestNumber = new GuestNumber(); initialGuestNumber.CurrentGuestNumber = 0; var guestNumberResult = await unitOfWork.GuestNumberManager.CreateAsync(initialGuestNumber); await unitOfWork.SaveChangesAsync(); if (guestNumberResult != null) { GuestNumber currentGuestNumber = guestNumberResult; Customer customer = new Customer(); customer.Name = "Guest " + currentGuestNumber.CurrentGuestNumber.ToString(); customer.LastVisitDate = DateTime.Now; customer.PhoneNumber = "00000000"; customer.Email = "Guest"; customer.TotalNumberOfVisits = 1; var customerResult = await unitOfWork.CustomersManager.CreateAsync(customer); var guestNumberUpdateResult = await unitOfWork.GuestNumberManager.GetByIdAsync(currentGuestNumber.Id); guestNumberUpdateResult.CurrentGuestNumber++; var res = await unitOfWork.SaveChangesAsync(); CustomerInfoDTO customerInfoToReturn = new CustomerInfoDTO(); customerInfoToReturn.Id = customer.Id; customerInfoToReturn.Name = customer.Name; customerInfoToReturn.LastVisitDate = customer.LastVisitDate; if (res == true) { result.Data = customerInfoToReturn; result.Data.Name = customerResult.Name; result.Succeeded = true; return(result); } else { result.Succeeded = false; result.Errors.Add("Failed to login as guest !"); result.ErrorType = ErrorType.LogicalError; return(result); } } else { result.Succeeded = false; result.Errors.Add("Failed to initialize guest number !"); result.ErrorType = ErrorType.LogicalError; return(result); } } else { GuestNumber currentGuestNumber = currentGuestNumberList[0]; Customer customer = new Customer(); customer.Name = "Guest " + currentGuestNumber.CurrentGuestNumber.ToString(); customer.LastVisitDate = DateTime.Now; customer.PhoneNumber = "*******"; customer.Email = "*******"; customer.TotalNumberOfVisits = 1; var customerResult = await unitOfWork.CustomersManager.CreateAsync(customer); var guestNumberUpdateResult = await unitOfWork.GuestNumberManager.GetByIdAsync(currentGuestNumber.Id); guestNumberUpdateResult.CurrentGuestNumber++; var res = await unitOfWork.SaveChangesAsync(); CustomerInfoDTO customerInfoToReturn = new CustomerInfoDTO(); customerInfoToReturn.Id = customer.Id; customerInfoToReturn.Name = customer.Name; customerInfoToReturn.LastVisitDate = customer.LastVisitDate; if (res == true) { result.Data = customerInfoToReturn; result.Data.Name = customerResult.Name; result.Succeeded = true; return(result); } else { result.Succeeded = false; result.Errors.Add("Failed to login as guest !"); result.ErrorType = ErrorType.LogicalError; return(result); } } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); return(result); } }