public IActionResult GetXls(string no, string unitId, string categoryId, string budgetId, string prStatus, string poStatus, string productId, DateTime?dateFrom, DateTime?dateTo)
        {
            try
            {
                byte[] xlsInBytes;
                int    offset = Convert.ToInt32(Request.Headers["x-timezone-offset"]);
                identityService.Username = User.Claims.Single(p => p.Type.Equals("username")).Value;
                DateTime DateFrom = dateFrom == null ? new DateTime(1970, 1, 1) : Convert.ToDateTime(dateFrom);
                DateTime DateTo   = dateTo == null ? DateTime.Now : Convert.ToDateTime(dateTo);

                var xls = facade.GenerateExcel(no, unitId, categoryId, budgetId, prStatus, poStatus, productId, dateFrom, dateTo, offset, identityService.Username);

                string filename = String.Format("Purchase Request - {0}.xlsx", DateTime.UtcNow.ToString("ddMMyyyy"));

                xlsInBytes = xls.ToArray();
                var file = File(xlsInBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename);
                return(file);
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
예제 #2
0
        public async Task Should_Success_GetXls_PurchaseRequest()
        {
            var dbContext       = _dbContext(GetCurrentMethod());
            var serviceProvider = _getServiceProvider(GetCurrentMethod()).Object;

            var unitPaymentOrderFacade = new UnitPaymentOrderFacade(serviceProvider, dbContext);
            var dataUtil = await _dataUtil(unitPaymentOrderFacade, dbContext, GetCurrentMethod()).GetTestLocalData();

            var urnId = dataUtil.Items.FirstOrDefault().URNId;
            var urn   = dbContext.UnitReceiptNotes.FirstOrDefault(f => f.Id.Equals(urnId));
            var prId  = urn.Items.FirstOrDefault(f => f.URNId.Equals(urn.Id)).PRId;
            var pr    = dbContext.PurchaseRequests.FirstOrDefault(f => f.Id.Equals(prId));

            var facade = new PurchaseRequestFacade(serviceProvider, dbContext);

            var resultExcel = facade.GenerateExcel(pr.No, pr.UnitId, pr.CategoryId, pr.BudgetId, "", "", "", null, null, 7, "Unit Test");

            Assert.NotNull(resultExcel);

            //result = await facade.GetReport(urn.URNNo, Convert.ToInt32(urn.UnitId), Convert.ToInt32(pr.CategoryId), DateTime.Now.AddDays(-7), DateTime.Now.AddDays(7), true, It.IsAny<int>());
            //Assert.NotNull(result);
        }