public ActionResult <List <RegimenModel> > GetAllRegimens() { var user = HttpContext.Session.GetObjectFromJson <UserModel>("_user"); if (user == null) { return(new List <RegimenModel>()); } return(_regimenService.GetAllRegimens()); }
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; } }