public IList <DesignedColumnProxy> GetAllDesignedReportsPersonInfoProxyColumns(decimal reportId)
        {
            try
            {
                IList <DesignedColumnProxy>            designedColumnProxyList            = new List <DesignedColumnProxy>();
                IList <DesignedReportPersonInfoColumn> designedReportPersonInfoColumnList = repDesignedReportPersonInfoColumn.GetAll().ToList <DesignedReportPersonInfoColumn>();
                IList <PersonReserveField>             personReserveFieldList             = new List <PersonReserveField>();
                if (designedReportPersonInfoColumnList.Count(d => d != null && d.IsReserveField) > 0)
                {
                    personReserveFieldList = new BPersonReservedField().GetAll();
                }

                foreach (DesignedReportPersonInfoColumn item in designedReportPersonInfoColumnList)
                {
                    DesignedColumnProxy columnProxy = new DesignedColumnProxy();
                    if (item.IsReserveField)
                    {
                        string             itemKey = item.Key.ToString().Replace("prsTA_", "");
                        PersonReserveField personReserveFieldObj = personReserveFieldList.FirstOrDefault(r => r.OrginalName.ToLower().Trim() == itemKey.ToLower().Trim());
                        if (personReserveFieldObj != null)
                        {
                            columnProxy.Name = personReserveFieldObj.Lable;
                        }
                        else
                        {
                            switch (BLanguage.CurrentLocalLanguage)
                            {
                            case LanguagesName.Parsi:
                                columnProxy.Name = item.FnName;
                                break;

                            case LanguagesName.English:
                                columnProxy.Name = item.EnName;
                                break;

                            default:
                                columnProxy.Name = item.FnName;
                                break;
                            }
                        }
                    }
                    else
                    {
                        switch (BLanguage.CurrentLocalLanguage)
                        {
                        case LanguagesName.Parsi:
                            columnProxy.Name = item.FnName;
                            break;

                        case LanguagesName.English:
                            columnProxy.Name = item.EnName;
                            break;

                        default:
                            columnProxy.Name = item.FnName;
                            break;
                        }
                    }
                    columnProxy.ColumnType = DesignedReportColumnType.PersonInfo;
                    columnProxy.ID         = item.ID;
                    columnProxy.KeyColumn  = item.Key.ToString();
                    designedColumnProxyList.Add(columnProxy);
                }
                designedColumnProxyList = designedColumnProxyList.OrderBy(o => o.Name).ToList <DesignedColumnProxy>();
                Report             reportObj     = new BReport().GetByID(reportId);
                DesignedReportType reportTypeObj = GetAllDesignedReportsTypes().SingleOrDefault(d => d.CustomCode == DesignedReportTypeEnum.Daily);
                if (reportObj.DesignedType == reportTypeObj)
                {
                    IList <PersonParamField> personParamFieldList = new BPersonParamFields().GetAll().Where(p => p.Active && p.SubSystemId == SubSystemIdentifier.TimeAtendance).ToList();
                    foreach (PersonParamField item in personParamFieldList)
                    {
                        DesignedColumnProxy columnProxy = new DesignedColumnProxy(); DesignedReportPersonInfoColumn designedReportPersonInfoColumnObj = new DesignedReportPersonInfoColumn();
                        columnProxy.EnName = item.EnTitle;
                        columnProxy.FnName = item.FnTitle;
                        switch (BLanguage.CurrentLocalLanguage)
                        {
                        case LanguagesName.Parsi:
                            columnProxy.Name = item.FnTitle;
                            break;

                        case LanguagesName.English:
                            columnProxy.Name = item.EnTitle;
                            break;

                        default:
                            columnProxy.Name = item.FnTitle;
                            break;
                        }
                        columnProxy.ColumnType = DesignedReportColumnType.PersonParam;
                        columnProxy.ID         = item.ID;
                        columnProxy.KeyColumn  = item.Key;
                        designedColumnProxyList.Add(columnProxy);
                    }
                }

                return(designedColumnProxyList);
            }
            catch (Exception ex)
            {
                LogException(ex, "BDesignedReportsColumn", "GetAllDesignedReportsPersonInfoColumns");
                throw ex;
            }
        }
    public string[] UpdateColumn_DesignedReportsSelectColumnPage(string state, string SelectedColumnID, string Title, string Active, string ReportID, string ConceptID, string Order, string ColumnType, string TrafficColumnsCount, string KeyColumn)
    {
        this.InitializeCulture();

        string[] retMessage = new string[4];

        try
        {
            decimal      ColumnID            = 0;
            decimal      selectedColumnID    = decimal.Parse(this.StringBuilder.CreateString(SelectedColumnID), CultureInfo.InvariantCulture);
            string       title               = this.StringBuilder.CreateString(Title);
            bool         active              = Convert.ToBoolean(this.StringBuilder.CreateString(Active) == "" ? "false" : this.StringBuilder.CreateString(Active));
            decimal      reportID            = decimal.Parse(this.StringBuilder.CreateString(ReportID), CultureInfo.InvariantCulture);
            decimal      fieldId             = decimal.Parse(this.StringBuilder.CreateString(ConceptID), CultureInfo.InvariantCulture);
            Int16        order               = Int16.Parse(this.StringBuilder.CreateString(Order));
            int          trafficColumnsCount = int.Parse(this.StringBuilder.CreateString(TrafficColumnsCount), CultureInfo.InvariantCulture);
            bool         isConcept           = false;
            UIActionType uam = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());
            DesignedReportTrafficKeyColumn keyColumn = DesignedReportTrafficKeyColumn.AllTraffic;
            GTS.Clock.Model.Report.DesignedReportColumn columnObj = new GTS.Clock.Model.Report.DesignedReportColumn();
            columnObj.ID = selectedColumnID;
            GTS.Clock.Model.Report.Report reportObj = new GTS.Clock.Model.Report.Report();
            reportObj.ID     = reportID;
            columnObj.Report = reportObj;
            if (uam != UIActionType.DELETE)
            {
                DesignedReportColumnType columnType = DesignedReportColumnType.None;
                if (ColumnType != string.Empty)
                {
                    columnType = (DesignedReportColumnType)Enum.Parse(typeof(DesignedReportColumnType), this.StringBuilder.CreateString(ColumnType));
                }
                if (columnType == DesignedReportColumnType.Traffic)
                {
                    keyColumn = (DesignedReportTrafficKeyColumn)Enum.Parse(typeof(DesignedReportTrafficKeyColumn), this.StringBuilder.CreateString(KeyColumn));
                }

                GTS.Clock.Model.Concepts.SecondaryConcept conceptObj    = null;
                DesignedReportPersonInfoColumn            personInfoObj = null;
                DesignedReportTrafficColumn trafficObj          = null;
                PersonParamField            personParamFieldObj = null;
                switch (columnType)
                {
                case DesignedReportColumnType.Concept:
                    conceptObj           = new SecondaryConcept();
                    conceptObj.ID        = fieldId;
                    columnObj.ColumnType = DesignedReportColumnType.Concept;
                    isConcept            = true;

                    break;

                case DesignedReportColumnType.Traffic:
                    trafficObj           = new DesignedReportTrafficColumn();
                    trafficObj.ID        = fieldId;
                    trafficObj.Key       = keyColumn;
                    columnObj.ColumnType = DesignedReportColumnType.Traffic;

                    break;

                case DesignedReportColumnType.PersonInfo:
                    personInfoObj        = new DesignedReportPersonInfoColumn();
                    personInfoObj.ID     = fieldId;
                    columnObj.ColumnType = DesignedReportColumnType.PersonInfo;
                    break;

                case DesignedReportColumnType.PersonParam:
                    personParamFieldObj    = new PersonParamField();
                    personParamFieldObj.ID = fieldId;
                    columnObj.ColumnType   = DesignedReportColumnType.PersonParam;
                    break;

                default:
                    break;
                }



                columnObj.Title              = title;
                columnObj.Active             = active;
                columnObj.Concept            = conceptObj;
                columnObj.PersonInfo         = personInfoObj;
                columnObj.Traffic            = trafficObj;
                columnObj.PersonParam        = personParamFieldObj;
                columnObj.Order              = order;
                columnObj.IsConcept          = isConcept;
                columnObj.TrafficColumnCount = trafficColumnsCount;
                if (uam != UIActionType.EDIT)
                {
                    IList <GTS.Clock.Model.Report.DesignedReportColumn> designedReportColumnList = DesignedReportsColumnBusiness.GetDesignedReportsColumnsByReportID(reportID);
                    Int16 lastOrder = 0;
                    if (designedReportColumnList.Count > 0)
                    {
                        lastOrder = designedReportColumnList.OrderByDescending(o => o.Order).FirstOrDefault().Order;
                    }

                    columnObj.Order = (Int16)(lastOrder + 1);
                }
            }

            switch (uam)
            {
            case UIActionType.ADD:

                ColumnID = this.DesignedReportsColumnBusiness.InsertColumn(columnObj);

                break;

            case UIActionType.EDIT:
                if (selectedColumnID == 0)
                {
                    retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoColumnSelectedforEdit").ToString()), retMessage);
                    return(retMessage);
                }
                ColumnID = this.DesignedReportsColumnBusiness.UpdateColumn(columnObj);
                break;

            case UIActionType.DELETE:
                if (selectedColumnID == 0)
                {
                    retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, new Exception(GetLocalResourceObject("NoColumnSelectedforEdit").ToString()), retMessage);
                    return(retMessage);
                }
                ColumnID = this.DesignedReportsColumnBusiness.DeleteColumn(columnObj);
                break;
            }


            retMessage[0] = GetLocalResourceObject("RetSuccessType").ToString();
            string SuccessMessageBody = string.Empty;
            switch (uam)
            {
            case UIActionType.ADD:
                SuccessMessageBody = GetLocalResourceObject("AddComplete").ToString();
                break;

            case UIActionType.EDIT:
                SuccessMessageBody = GetLocalResourceObject("EditComplete").ToString();
                break;

            case UIActionType.DELETE:
                SuccessMessageBody = GetLocalResourceObject("DeleteComplete").ToString();
                break;

            default:
                break;
            }
            retMessage[1] = SuccessMessageBody;
            retMessage[2] = "success";
            retMessage[3] = ColumnID.ToString();

            return(retMessage);
        }
        catch (UIValidationExceptions ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
            return(retMessage);
        }
        catch (UIBaseException ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
            return(retMessage);
        }
        catch (Exception ex)
        {
            retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
            return(retMessage);
        }
    }
        public IList <DesignedReportPersonInfoColumn> GetAllDesignedReportsPersonInfoColumns()
        {
            try
            {
                IList <DesignedReportPersonInfoColumn> designedReportPersonInfoColumnList = new List <DesignedReportPersonInfoColumn>();
                designedReportPersonInfoColumnList = repDesignedReportPersonInfoColumn.GetAll().ToList <DesignedReportPersonInfoColumn>();
                IList <PersonReserveField> personReserveFieldList = new List <PersonReserveField>();
                if (designedReportPersonInfoColumnList.Count(d => d != null && d.IsReserveField) > 0)
                {
                    personReserveFieldList = new BPersonReservedField().GetAll();
                }
                foreach (DesignedReportPersonInfoColumn item in designedReportPersonInfoColumnList)
                {
                    if (item.IsReserveField)
                    {
                        string             itemKey = item.Key.ToString().Replace("prsTA_", "");
                        PersonReserveField personReserveFieldObj = personReserveFieldList.FirstOrDefault(r => r.OrginalName.ToLower().Trim() == itemKey.ToLower().Trim());
                        if (personReserveFieldObj != null)
                        {
                            item.Name = personReserveFieldObj.Lable;
                        }
                        else
                        {
                            switch (BLanguage.CurrentLocalLanguage)
                            {
                            case LanguagesName.Parsi:
                                item.Name = item.FnName;
                                break;

                            case LanguagesName.English:
                                item.Name = item.EnName;
                                break;

                            default:
                                item.Name = item.FnName;
                                break;
                            }
                        }
                    }
                    else
                    {
                        switch (BLanguage.CurrentLocalLanguage)
                        {
                        case LanguagesName.Parsi:
                            item.Name = item.FnName;
                            break;

                        case LanguagesName.English:
                            item.Name = item.EnName;
                            break;

                        default:
                            item.Name = item.FnName;
                            break;
                        }
                    }
                }
                IList <PersonParamField> personParamFieldList = new BPersonParamFields().GetAll().Where(p => p.Active && p.SubSystemId == SubSystemIdentifier.TimeAtendance).ToList();
                foreach (PersonParamField item in personParamFieldList)
                {
                    DesignedReportPersonInfoColumn designedReportPersonInfoColumnObj = new DesignedReportPersonInfoColumn();
                    designedReportPersonInfoColumnObj.EnName = item.EnTitle;
                    designedReportPersonInfoColumnObj.FnName = item.FnTitle;

                    //switch (BLanguage.CurrentLocalLanguage)
                    //{
                    //    case LanguagesName.Unknown:
                    //        conceptProxy.Name = item.FnTitle;
                    //        break;
                    //    case LanguagesName.Parsi:
                    //        conceptProxy.Name = item.FnTitle;
                    //        break;
                    //    case LanguagesName.English:
                    //        conceptProxy.Name = item.EnTitle;
                    //        break;
                    //    default:
                    //        conceptProxy.Name = item.FnTitle;
                    //        break;
                    //}
                    //conceptProxyList.Add(conceptProxy);
                }
                designedReportPersonInfoColumnList = designedReportPersonInfoColumnList.OrderBy(o => o.Name).ToList <DesignedReportPersonInfoColumn>();
                return(designedReportPersonInfoColumnList);
            }
            catch (Exception ex)
            {
                LogException(ex, "BDesignedReportsColumn", "GetAllDesignedReportsPersonInfoColumns");
                throw ex;
            }
        }