public async Task <IActionResult> GetLabelUIAsync([FromBody] ViewModels.PageLabelReq view)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var result = await _service.GetLabelsUI(view);

            if (!result.Success)
            {
                return(BadRequest(result.Resource));
            }

            return(Ok(result.Resource));
        }
        public async Task <IResponse <List <ViewModels.LabelNames> > > GetLabelsUI(ViewModels.PageLabelReq view)
        {
            var PageLabelRes   = new List <LabelNames>();
            var PageLabelModel = new List <Languages_Label>();

            if (view.page_name == "ALL")
            {
                var EnData = (from file in _appContext.Languages_Label
                              where file.Is_Active == 1 & file.Language_Code == "En"
                              orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                              select new
                {
                    Page_Name = file.Pagename,
                    Page_Display_Name = file.Page_Displayname,
                    Label_Name = file.Labelname,
                    Value = file.Value,
                    LanguageCode = file.Language_Code
                });
                var ArData = (from file in _appContext.Languages_Label
                              where file.Is_Active == 1 & file.Language_Code == "Ar"
                              orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                              select new
                {
                    Page_Name = file.Pagename,
                    Page_Display_Name = file.Page_Displayname,
                    Label_Name = file.Labelname,
                    Value = file.Value,
                    LanguageCode = file.Language_Code
                });
                var FinalData = from item in EnData
                                join item1 in ArData
                                on new { item.Page_Name, item.Label_Name } equals new { item1.Page_Name, item1.Label_Name }
                select new
                {
                    PageName        = item.Page_Name,
                    PageDisplayName = item.Page_Display_Name,
                    LabelName       = item.Label_Name,
                    English         = item.Value,
                    Arabic          = item1.Value
                };
                foreach (var item in FinalData)
                {
                    LabelNames ll = new LabelNames();
                    ll.PageName        = item.PageName;
                    ll.PageDisplayName = item.PageDisplayName;
                    ll.LabelName       = item.LabelName;
                    ll.English         = item.English.ToString().Trim();
                    ll.Arabic          = item.Arabic.ToString().Trim();

                    PageLabelRes.Add(ll);
                }
            }
            else
            {
                var EnData = from file in _appContext.Languages_Label
                             where file.Is_Active == 1 & file.Language_Code == "En" & file.Pagename == view.page_name || file.Pagename == "Common"
                             orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                    select new
                {
                    Page_Name         = file.Pagename,
                    Page_Display_Name = file.Page_Displayname,
                    Label_Name        = file.Labelname,
                    Value             = file.Value,
                    LanguageCode      = file.Language_Code
                };
                var ArData = from file in _appContext.Languages_Label
                             where file.Is_Active == 1 & file.Language_Code == "Ar" & file.Pagename == view.page_name || file.Pagename == "Common"
                             orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                    select new
                {
                    Page_Name         = file.Pagename,
                    Page_Display_Name = file.Page_Displayname,
                    Label_Name        = file.Labelname,
                    Value             = file.Value,
                    LanguageCode      = file.Language_Code
                };
                var FinalData = from item in EnData
                                join item1 in ArData
                                on new { item.Label_Name } equals new { item1.Label_Name }
                select new
                {
                    PageName        = item.Page_Name,
                    PageDisplayName = item.Page_Display_Name,
                    LabelName       = item.Label_Name,
                    English         = item.Value,
                    Arabic          = item1.Value
                };
                foreach (var item in FinalData)
                {
                    LabelNames ll = new LabelNames();
                    ll.PageName        = item.PageName;
                    ll.PageDisplayName = item.PageDisplayName;
                    ll.LabelName       = item.LabelName;
                    ll.English         = item.English.ToString().Trim();
                    ll.Arabic          = item.Arabic.ToString().Trim();

                    PageLabelRes.Add(ll);
                }
            }

            return(new LangResponseUI(PageLabelRes));
        }
        public async Task <IResponse <List <ViewModels.Page> > > GetLabels(ViewModels.PageLabelReq view)
        {
            var       PageLabelRes = new List <Page>();
            DataTable dt           = new DataTable();

            if (view.FromDate != null)
            {
                var data = from file in _appContext.Languages_Label
                           where file.Is_Active == 1 && file.Updated_Date >= view.FromDate
                           orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                    select new
                {
                    Page_Name         = file.Pagename,
                    Page_Display_Name = file.Page_Displayname,
                    Label_Name        = file.Labelname,
                    file.Value,
                    Language = file.Language_Code
                };
                var labelInfo = await data.ToListAsync();

                dt = ToDataTable(labelInfo);
            }
            else if (view.page_name == "ALL")
            {
                var data = from file in _appContext.Languages_Label
                           where file.Is_Active == 1
                           orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                    select new
                {
                    Page_Name         = file.Pagename,
                    Page_Display_Name = file.Page_Displayname,
                    Label_Name        = file.Labelname,
                    file.Value,
                    Language = file.Language_Code
                };
                var labelInfo = await data.ToListAsync();

                dt = ToDataTable(labelInfo);
            }

            String previouspagename  = String.Empty;
            String previouslabelname = String.Empty;
            String NextLabelName     = String.Empty;


            for (int i = 0; i < dt.Rows.Count - 1; i++)
            {
                Page Response = new Page();
                Response.Name     = dt.Rows[i]["Page_Name"].ToString();
                Response.DispName = dt.Rows[i]["Page_Display_Name"].ToString();

                if (String.IsNullOrEmpty(previouspagename))
                {
                    previouspagename = dt.Rows[i]["Page_Name"].ToString();
                }

                List <Label> lstlabel = new List <Label>();
                int          CCount   = i;
                if (i != 0)
                {
                    i = i - 1;
                }
                if (previouspagename.ToUpper() == dt.Rows[i]["Page_Name"].ToString().ToUpper())
                {
                    for (int j = i; j < dt.Rows.Count - 1; j++)
                    {
                        if (previouspagename.ToUpper() == dt.Rows[j]["Page_Name"].ToString().ToUpper())
                        {
                            String CurrentLabelName = dt.Rows[j]["Label_Name"].ToString();

                            if (previouslabelname.ToUpper() != CurrentLabelName.ToUpper())
                            {
                                if (dt.Rows[j]["Language"].ToString().Trim() == "en")
                                {
                                    Label label = new Label();
                                    label.Text = CurrentLabelName;
                                    List <Values> lstval = new List <Values>();
                                    Values        val    = new Values();

                                    val.En = dt.Rows[j]["Value"].ToString();
                                    if (dt.Rows[j + 1]["Language"].ToString().Trim() == "ar" && CurrentLabelName == dt.Rows[j + 1]["Label_Name"].ToString())
                                    {
                                        val.Ar = dt.Rows[j + 1]["Value"].ToString();
                                    }
                                    else
                                    {
                                        val.Ar = "";
                                    }

                                    lstval.Add(val);
                                    label.Values = lstval;
                                    lstlabel.Add(label);
                                }
                                else if (dt.Rows[j]["Language"].ToString().Trim() == "ar")
                                {
                                    Label label = new Label();
                                    label.Text = CurrentLabelName;
                                    List <Values> lstval = new List <Values>();
                                    Values        val    = new Values();

                                    val.Ar = dt.Rows[j]["Value"].ToString();
                                    if (dt.Rows[j + 1]["Language"].ToString().Trim() == "en" && CurrentLabelName == dt.Rows[j + 1]["Label_Name"].ToString())
                                    {
                                        val.En = dt.Rows[j + 1]["Value"].ToString();
                                    }
                                    else
                                    {
                                        val.En = "";
                                    }

                                    lstval.Add(val);
                                    label.Values = lstval;
                                    lstlabel.Add(label);
                                }
                                previouslabelname = CurrentLabelName;
                            }
                        }
                        else
                        {
                            CCount = j;
                            break;
                        }
                        CCount = j;
                    }
                }
                i = CCount;

                previouspagename = dt.Rows[i]["Page_Name"].ToString();

                Response.Labels = lstlabel;

                PageLabelRes.Add(Response);
            }

            return(new LangResponse(PageLabelRes));
        }
        public async Task <IResponse <ViewModels.PageNew> > GetLabel(ViewModels.PageLabelReq view)
        {
            var       PageLabelRes = new PageNew();
            DataTable dt           = new DataTable();
            Dictionary <string, string> PageRes = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);

            if (view.FromDate != null)
            {
                var data = from file in _appContext.Languages_Label
                           where file.Is_Active == 1 && file.Updated_Date >= view.FromDate
                           orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                    select new
                {
                    Key   = file.Pagename.Trim() + "_" + file.Labelname.Trim() + "_" + file.Language_Code.Trim(),
                    value = file.Value.Trim()
                };
                var labelInfo = await data.ToListAsync();

                PageLabelRes.PageKeyValue = new Dictionary <string, string>();
                dt = ToDataTable(labelInfo);
                foreach (DataRow dr in dt.AsEnumerable())
                {
                    if (!PageLabelRes.PageKeyValue.ContainsKey(dr["Key"].ToString().Trim()))
                    {
                        PageLabelRes.PageKeyValue.Add(dr["Key"].ToString().Trim(), dr["value"].ToString().Trim());
                    }
                }
            }
            else if (view.page_name == "ALL")
            {
                var data = from file in _appContext.Languages_Label
                           where file.Is_Active == 1
                           orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                    select new
                {
                    Key   = file.Pagename.Trim() + "_" + file.Labelname.Trim() + "_" + file.Language_Code.Trim(),
                    value = file.Value.Trim()
                };
                var labelInfo = await data.ToListAsync();

                PageLabelRes.PageKeyValue = new Dictionary <string, string>();
                dt = ToDataTable(labelInfo);
                foreach (DataRow dr in dt.AsEnumerable())
                {
                    if (!PageLabelRes.PageKeyValue.ContainsKey(dr["Key"].ToString().Trim()))
                    {
                        PageLabelRes.PageKeyValue.Add(dr["Key"].ToString().Trim(), dr["value"].ToString().Trim());
                    }
                }
            }
            else
            {
                var data = from file in _appContext.Languages_Label
                           where file.Is_Active == 1 & file.Pagename == view.page_name || file.Pagename == "Common"
                           orderby file.Pagename ascending, file.Labelname descending, file.Language_Code descending
                    select new
                {
                    Key   = file.Pagename.Trim() + "_" + file.Labelname.Trim() + "_" + file.Language_Code.Trim(),
                    value = file.Value.Trim()
                };
                var labelInfo = await data.ToListAsync();

                dt = ToDataTable(labelInfo);
                PageLabelRes.PageKeyValue = new Dictionary <string, string>();
                foreach (DataRow dr in dt.AsEnumerable())
                {
                    if (!PageLabelRes.PageKeyValue.ContainsKey(dr["Key"].ToString().Trim()))
                    {
                        PageLabelRes.PageKeyValue.Add(dr["Key"].ToString().Trim(), dr["value"].ToString().Trim());
                    }
                }
            }

            return(new LanggResponse(PageLabelRes));
        }