// -------------------- .CREATE -------------------- // // -------------------- UPDATE -------------------- // /// <summary> /// Update booking /// </summary> /// <param name="booking"></param> public void Update(BookingDto booking) { Repository.Update<Booking>(booking.ExposedAs<Booking>(Repository)); UnitOfWork.Save(); }
public InvoiceDto CreateTranscriptionInvoice(decimal amount, int duration, decimal ratePerMinute, BookingDto booking, UserDto user, string transactionId) { Invoice invoice = new Invoice { InvoiceNumber = GetInvoiceNumber(), Amount = amount, GST = SubtractGSTCalculator(amount), RatePerMinute = ratePerMinute, Duration = duration, Type = InvoiceType.OrderTranscript, CreatedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow, SentDate = DateTime.UtcNow, User = user.ExposedAs<User>(Repository), Currency = Currency.AUD.ToString(), PaymentStatus = true, Booking = booking.ExposedAs<Booking>(Repository) }; invoice.Description = string.Format(InvoiceConst.InvoiceCallRecordDescription, invoice.Booking.ReferenceNo); Repository.Insert<Invoice>(invoice); UnitOfWork.Save(); if (!invoice.Id.Equals(Guid.Empty)) { var mailContent = GetEmailContentOfInvoice(invoice.ExposedAs<InvoiceDto>()); var mailPdfContent = TranformToInvoiceTemplate(user, invoice.ExposedAs<InvoiceDto>(), null, ConstEmailTemplateKey.ConsultationInvoiceTemplate, null); System.Threading.Tasks.Task.Factory.StartNew(() => { byte[] pdfAsByte = HtmlToPdf.GetPdfData(mailPdfContent, baseUrl); string fileName = GenerateInvoiceName(invoice.InvoiceNumber); SendInvoice(fileName, pdfAsByte, mailContent, user.Email, ConstEmailSubject.TranscriptionInvoice); }); } else { throw new ArgumentException("Cannot save transcription invoice to database"); } return invoice.ExposedAs<InvoiceDto>(); }
// -------------------- .GET -------------------- // // -------------------- CREATE -------------------- // /// <summary> /// Create a booking /// </summary> /// <param name="booking"></param> /// <returns></returns> public BookingDto Create(BookingDto booking) { // IRepository repository = Repository; var book = booking.ExposedAs<Booking>(Repository); book.ReferenceNo = GetBookingReferenceNo(); // Convert date time to UTC book.CreatedDate = DateTime.UtcNow; book.ModifiedDate = DateTime.UtcNow; Repository.Insert<Booking>(book); UnitOfWork.Save(); booking = book.ExposedAs<BookingDto>(); // Add to booking event for consultant if (booking.Type != BookingType.TalkNow) { var bookingEventDto = new BookingEventDto { Booking = booking, SourceUser = booking.Customer, TargetUser = booking.Specialist, ShortDescription = AlertShortDescription.BookingRequestMade, Description = AlertDescription.BookingRequestMade, CreatedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow, IsRead = false, EmailAlertSubject = EmailAlertSubject.BookingRequestMade, EmailAlertDetail = EmailAlertDetail.BookingRequestMade, SMSAlertDetail = SMSAlertDetail.BookingRequestMade }; CreateBookingEvent(bookingEventDto); } return booking; }