コード例 #1
0
        public async Task <ContentResult> GetInvoiceItem(GetInvoiceInput input)
        {
            try
            {
                List <ExtraDto> extralist = new List <ExtraDto>();
                ReturnMessage   rm        = new ReturnMessage(1, "Success");
                var             invoices  = await Task.Run(() => _unitOfWork.Invoices.GetAsync(filter: w => input.Id != 0 ? (w.Id == input.Id) : true, includeProperties: "Customer,Booking"));

                var invoicesToReturn = _mapper.Map <IEnumerable <InvoiceDto> >(invoices);
                //  var extra = _unitOfWork.BookingExtras.Find(x => x.BookingId == invoices.First().Booking.Id);
                var extra = await Task.Run(() => _unitOfWork.BookingExtras.GetAsync(filter: w => w.BookingId == invoices.First().BookingId, includeProperties: "Extra"));

                var cars = await Task.Run(() => _unitOfWork.Cars.GetAsync(filter: w => w.Id == invoices.First().Booking.CarId, includeProperties: "CarClassification"));

                var        car        = _mapper.Map <IEnumerable <CarDto> >(cars).First();
                var        payment    = _unitOfWork.Payments.Find(x => x.InvoiceId == input.Id).SingleOrDefault();
                PaymentDto paymentDto = _mapper.Map <PaymentDto>(payment);
                if (paymentDto != null)
                {
                    paymentDto.PaymentType = ((Utility.PaymentType)Convert.ToInt32(paymentDto.PaymentType)).ToString();
                }
                foreach (var item in extra)
                {
                    var extraDto = _mapper.Map <ExtraDto>(item.Extra);
                    extraDto.Count = item.Count ?? 0;
                    extralist.Add(extraDto);
                }
                InvoiceDetailDto invoiceDetail = new InvoiceDetailDto()
                {
                    Invoice          = invoicesToReturn.First(),
                    InvoiceId        = invoicesToReturn.First().Id,
                    Booking          = invoicesToReturn.First().Booking,
                    BookingExtraList = extralist,
                    Car     = car,
                    Payment = paymentDto
                };

                List <InvoiceDetailDto> invoicedetailList = new List <InvoiceDetailDto>();
                invoicedetailList.Add(invoiceDetail);

                return(this.Content(rm.returnMessage(new PagedResultDto <InvoiceDetailDto>
                                                         (invoicedetailList.AsQueryable(), input.pagenumber, input.pagesize)),
                                    "application/json"));
            }
            catch (Exception ex)
            {
                return(this.Content(JsonConvert.SerializeObject(new
                {
                    msgCode = -3,
                    msg = ex.Message
                }), "application/json"));
            }
        }
コード例 #2
0
        public async Task <ContentResult> GetInvoice(GetInvoiceInput input)
        {
            IEnumerable <Invoice> invoices;

            try
            {
                ReturnMessage rm           = new ReturnMessage(1, "Success");
                var           current_user = HttpContext.Session.GetObjectFromJson <RegisterUserDto>("current_user");
                if (current_user.BranchId != 3 || current_user.UserRole == "Staff")
                {
                    var users = await Task.Run(() => _unitOfWork.BranchStaff.GetAsync(filter: w => w.BranchId == current_user.BranchId, includeProperties: "Staff"));

                    List <string> usersinbranch = new List <string>();
                    foreach (var item in users)
                    {
                        usersinbranch.Add(item.Staff.UserName);
                    }
                    invoices = await Task.Run(() => _unitOfWork.Invoices.GetAsync(filter: w => (input.Id != 0 ? (w.Id == input.Id) : true) && usersinbranch.Contains(w.CreatedBy), includeProperties: "Customer,Booking"));
                }
                else
                {
                    invoices = await Task.Run(() => _unitOfWork.Invoices.GetAsync(filter: w => input.Id != 0 ? (w.Id == input.Id) : true, includeProperties: "Customer,Booking"));
                }

                var invoicesToReturn = _mapper.Map <IEnumerable <InvoiceDto> >(invoices);
                return(this.Content(rm.returnMessage(new PagedResultDto <InvoiceDto>
                                                         (invoicesToReturn.AsQueryable(), input.pagenumber, input.pagesize)),
                                    "application/json"));
            }
            catch (Exception ex)
            {
                return(this.Content(JsonConvert.SerializeObject(new
                {
                    msgCode = -3,
                    msg = ex.Message
                }), "application/json"));
            }
        }