コード例 #1
0
        public ActionResult <List <RegimenModel> > GetAllRegimens()
        {
            var user = HttpContext.Session.GetObjectFromJson <UserModel>("_user");

            if (user == null)
            {
                return(new List <RegimenModel>());
            }
            return(_regimenService.GetAllRegimens());
        }
コード例 #2
0
        public ActionResult<GenericValidator> ExportLineList([FromBody] QueryModel query)
        {
            var gVal = new GenericValidator();
            try
            {
                var comlumHeadrs = new string[]
                {
                    "Client Id",
                    "Gender",
                    "Age(yrs)",
                    "Preg.",
                    "Art Date",
                    "First Regimen",
                    "First Regimen Line",
                    "Current Visit Date",
                    "Current Viral Load Sample Date",
                    "Current Viral Load Result",
                    "Current Regimen",
                    "Current Regimen Line"
                };

                var user = HttpContext.Session.GetObjectFromJson<UserModel>("_user");
                if (user == null)
                {
                    gVal.Code = -1;
                    gVal.Message = "You need to login or contact the Admin to get an account.";
                    return gVal;
                }

                string sWebRootFolder = _hostingEnvironment.WebRootPath;
                var excelName = $"linelist-{user.Id.Replace("-", string.Empty)}.xlsx";
                string URL = string.Format("{0}://{1}/{2}/{3}", Request.Scheme, Request.Host, "Exports", excelName);

                var exports = Path.Combine(sWebRootFolder, "Exports");
                if (!Directory.Exists(exports))
                {
                    var directory = Directory.CreateDirectory(exports);
                    // Get a DirectorySecurity object that represents the
                    // current security settings.
                    var dSecurity = directory.GetAccessControl();

                    // Add the FileSystemAccessRule to the security settings.
                    dSecurity.AddAccessRule(
                        new FileSystemAccessRule(
                            new System.Security.Principal.SecurityIdentifier(
                                System.Security.Principal.WellKnownSidType.BuiltinUsersSid,
                                null
                            ),
                            FileSystemRights.FullControl,
                            AccessControlType.Allow
                        )
                    );
                    // Set the new access settings.
                    directory.SetAccessControl(dSecurity);
                }

                var path = Path.Combine(sWebRootFolder, "Exports", excelName);

                var file = new FileInfo(path);

                if (file.Exists)
                {
                    file.Delete();
                }

                using (var package = new ExcelPackage(file))
                {
                    // add a new worksheet to the empty workbook

                    var worksheet = package.Workbook.Worksheets.Add("Line List"); //Worksheet name

                    using (var cells = worksheet.Cells["A1:O1"]) //(1,1) (1,5)
                    {
                        cells.Merge = true;
                        cells.Style.WrapText = true;
                        cells.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
                        cells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                        cells.Value = query.Header + ": " + Convert.ToDateTime(query.From).ToShortDateString() + " - " + Convert.ToDateTime(query.To).ToShortDateString();
                        cells.Style.Font.Bold = true;
                    }

                    using (var cells = worksheet.Cells["A3:M3"])
                    {
                        cells.Style.Font.Bold = true;
                    }

                    //First add the headers
                    for (var i = 0; i < comlumHeadrs.Count(); i++)
                    {
                        worksheet.Cells[3, i + 1].Value = comlumHeadrs[i];
                    }                    
                    // result = package.GetAsByteArray();                                                      

                    package.Save();
                }

                regimens = _regimenService.GetAllRegimens();

                if (!regimens.Any())
                {
                    gVal.Code = -1;
                    gVal.Message = "An error was encountered. Please contact the Admin to set up list of ARV Regimen";
                    return gVal;
                }

                var status = ProcessLists(path, 4, query);
                if(status > 0)
                {
                    gVal.Code = status;
                    gVal.Message = "File was successfully generated";
                    // gVal.Asset = excelName;
                    gVal.Asset = URL;
                    gVal.FileName = excelName;
                    return gVal;
                }

                gVal.Code = -5;
                gVal.Message = "Query export failed. Please try again later";
                gVal.Asset = "";
                return gVal;

            }
            catch (Exception e)
            {
                return gVal;
            }
        }