Monday, February 17, 2020

C# REST API to download excel sheet by EPPlus. Working code. From data table




C# REST API to download excel sheet by EPPlus. Working code. From data table.

[HttpGet]
        public string TestExcel()
        {
            DataTable table = new DataTable();
            table.Columns.Add("Dosage", typeof(int));
            table.Columns.Add("Drug", typeof(string));
            table.Columns.Add("Patient", typeof(string));
            table.Columns.Add("Date", typeof(DateTime));

            // Step 3: here we add 5 rows.
            table.Rows.Add(25, "Indocin", "David", DateTime.Now);
            table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
            table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
            table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
            table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

            using (ExcelPackage p = new ExcelPackage())
            {
                ExcelWorksheet ws1 = p.Workbook.Worksheets.Add("RSL Master");
                ws1.Cells["A1"].LoadFromDataTable(table, true, OfficeOpenXml.Table.TableStyles.None);
                Byte[] bin = p.GetAsByteArray();
                System.Web.HttpContext.Current.Response.Clear();
                System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=RSL_Master.xlsx");
                System.Web.HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                System.Web.HttpContext.Current.Response.BinaryWrite(bin);
                System.Web.HttpContext.Current.Response.End();
            }
            return "success";
        }

Monday, February 10, 2020

GET system display name, email or directory entry by login user id in C# by Dir DirectorySearcher




GET system display name, email or directory entry by login user id in C# by Dir DirectorySearcher


public class ActiveDirrectory
    {
        public static ADItems GetUserADDetails(string username)
        {
            try
            {
                DirectoryEntry dirEntry = new DirectoryEntry(Constants.LDAP);
                DirectorySearcher search = new DirectorySearcher(dirEntry);
                search.PropertiesToLoad.Add("cn");
                search.PropertiesToLoad.Add("displayName");
                search.PropertiesToLoad.Add("manager");
                search.PropertiesToLoad.Add("mail");
                search.PropertiesToLoad.Add("sAMAccountName");
                if (username.IndexOf('@') > -1)
                {
                    // userprincipal username
                    search.Filter = "(userPrincipalName=" + username + ")";
                }
                else
                {
                    // samaccountname username
                    String samaccount = username;
                    if (username.IndexOf(@"\") > -1)
                    {
                        samaccount = username.Substring(username.IndexOf(@"\") + 1);
                    }
                    search.Filter = "(sAMAccountName=" + samaccount + ")";
                }
                SearchResult result = search.FindOne();
                ADItems obj = new ADItems();
                if (result != null)
                {
                    obj.loginName = username;
                    if (result.Properties["displayName"] != null)
                        obj.displayName = Convert.ToString(result.Properties["displayName"][0]);                   
                    if (result.Properties["mail"] != null)
                        obj.email = Convert.ToString(result.Properties["mail"][0]);
                    if (result.Properties["manager"] != null)
                        obj.manager = Convert.ToString(result.Properties["manager"][0]);
                }
                return obj;
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }
    }
    public class ADItems
    {
        public string loginName { get; set; }
        public string displayName { get; set; }
        public string email { get; set; }
        public string manager { get; set; }
    }