Exemple #1
0
        protected static FR_L5TN_GCTFFT_1529_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            var returnStatus = new FR_L5TN_GCTFFT_1529_Array();

            DbCommand command = Connection.CreateCommand();

            command.Connection  = Connection;
            command.Transaction = Transaction;
            var commandLocation = "CL5_VacationPlanner_Tenant.Atomic.Retrieval.SQL.cls_Get_CalculationTimeFramesForTenant.sql";

            command.CommandText = new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(commandLocation)).ReadToEnd();
            CSV2Core_MySQL.Support.DBSQLSupport.SetParameter(command, "ticket", securityTicket);
            command.CommandTimeout = QueryTimeout;

            List <L5TN_GCTFFT_1529> results = new List <L5TN_GCTFFT_1529>();
            var loader = new CSV2Core_MySQL.Dictionaries.MultiTable.Loader.DictionaryLoader(Connection, Transaction);
            var reader = new CSV2Core_MySQL.Support.DBSQLReader(command.ExecuteReader());

            try
            {
                reader.SetOrdinals(new string[] { "CMN_CAL_CalculationTimeframeID", "CalculationTimeframe_StartDate", "CalculationTimefrate_EndDate", "CalculationTimeframe_EstimatedEndDate", "IsCalculationTimeframe_Active", "Creation_Timestamp" });
                while (reader.Read())
                {
                    L5TN_GCTFFT_1529 resultItem = new L5TN_GCTFFT_1529();
                    //0:Parameter CMN_CAL_CalculationTimeframeID of type Guid
                    resultItem.CMN_CAL_CalculationTimeframeID = reader.GetGuid(0);
                    //1:Parameter CalculationTimeframe_StartDate of type DateTime
                    resultItem.CalculationTimeframe_StartDate = reader.GetDate(1);
                    //2:Parameter CalculationTimefrate_EndDate of type DateTime
                    resultItem.CalculationTimefrate_EndDate = reader.GetDate(2);
                    //3:Parameter CalculationTimeframe_EstimatedEndDate of type DateTime
                    resultItem.CalculationTimeframe_EstimatedEndDate = reader.GetDate(3);
                    //4:Parameter IsCalculationTimeframe_Active of type bool
                    resultItem.IsCalculationTimeframe_Active = reader.GetBoolean(4);
                    //5:Parameter Creation_Timestamp of type DateTime
                    resultItem.Creation_Timestamp = reader.GetDate(5);

                    results.Add(resultItem);
                }
            }
            catch (Exception ex)
            {
                reader.Close();
                throw new Exception("Exception occured durng data retrieval in method cls_Get_CalculationTimeFramesForTenant", ex);
            }
            reader.Close();
            //Load all the dictionaries from the datatables
            loader.Load();

            returnStatus.Result = results.ToArray();
            return(returnStatus);
        }
        protected static FR_L5TN_GCTFFTAY_1320 Execute(DbConnection Connection, DbTransaction Transaction, P_L5TN_GCTFFTAY_1320 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5TN_GCTFFTAY_1320();
            //Put your code here

            ORM_CMN_CAL_CalculationTimeframe.Query calcTimeFrameQuery = new ORM_CMN_CAL_CalculationTimeframe.Query();
            calcTimeFrameQuery.Tenant_RefID = securityTicket.TenantID;
            calcTimeFrameQuery.IsDeleted    = false;

            var calcTimeFrame = ORM_CMN_CAL_CalculationTimeframe.Query.Search(Connection, Transaction, calcTimeFrameQuery).FirstOrDefault(x => x.CalculationTimeframe_StartDate.Year == Parameter.Year);

            returnValue.Result = new L5TN_GCTFFTAY_1320();

            L5TN_GCTFFT_1529 result = new L5TN_GCTFFT_1529();


            if (calcTimeFrame == null)
            {
                ORM_CMN_CAL_CalculationTimeframe newCalcTimeframe = new ORM_CMN_CAL_CalculationTimeframe();
                newCalcTimeframe.CalculationTimeframe_StartDate        = new DateTime(Parameter.Year, 1, 1);
                newCalcTimeframe.CalculationTimeframe_EstimatedEndDate = new DateTime(Parameter.Year, 12, 31);
                newCalcTimeframe.IsCalculationTimeframe_Active         = false;
                newCalcTimeframe.Tenant_RefID = securityTicket.TenantID;
                newCalcTimeframe.Save(Connection, Transaction);

                result.CalculationTimeframe_EstimatedEndDate = newCalcTimeframe.CalculationTimeframe_EstimatedEndDate;
                result.CalculationTimeframe_StartDate        = newCalcTimeframe.CalculationTimeframe_StartDate;
                result.CalculationTimefrate_EndDate          = newCalcTimeframe.CalculationTimefrate_EndDate;
                result.CMN_CAL_CalculationTimeframeID        = newCalcTimeframe.CMN_CAL_CalculationTimeframeID;
                result.Creation_Timestamp            = newCalcTimeframe.Creation_Timestamp;
                result.IsCalculationTimeframe_Active = newCalcTimeframe.IsCalculationTimeframe_Active;
            }
            else
            {
                result.CalculationTimeframe_EstimatedEndDate = calcTimeFrame.CalculationTimeframe_EstimatedEndDate;
                result.CalculationTimeframe_StartDate        = calcTimeFrame.CalculationTimeframe_StartDate;
                result.CalculationTimefrate_EndDate          = calcTimeFrame.CalculationTimefrate_EndDate;
                result.CMN_CAL_CalculationTimeframeID        = calcTimeFrame.CMN_CAL_CalculationTimeframeID;
                result.Creation_Timestamp            = calcTimeFrame.Creation_Timestamp;
                result.IsCalculationTimeframe_Active = calcTimeFrame.IsCalculationTimeframe_Active;
            }

            returnValue.Result.CalculationTimeFrame = result;

            return(returnValue);

            #endregion UserCode
        }
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_Guid();

            L5TN_GCTFFT_1529[] timeFrames = cls_Get_CalculationTimeFramesForTenant.Invoke(Connection, Transaction, securityTicket).Result;
            List <int>         allYears   = new List <int>();
            foreach (var timeFrame in timeFrames)
            {
                if (!allYears.Contains(timeFrame.CalculationTimeframe_StartDate.Year))
                {
                    allYears.Add(timeFrame.CalculationTimeframe_StartDate.Year);
                }
            }

            foreach (var year in allYears)
            {
                if (timeFrames.Count(i => i.CalculationTimeframe_StartDate.Year == year) > 1)
                {
                    List <L5TN_GCTFFT_1529> problematicFrames = timeFrames.Where(i => i.CalculationTimeframe_StartDate.Year == year).ToList();
                    DateTime validFrame = problematicFrames.Min(i => i.Creation_Timestamp);
                    foreach (var frame in problematicFrames.Where(i => i.Creation_Timestamp != validFrame))
                    {
                        ORM_CMN_CAL_CalculationTimeframe timeFrame = new ORM_CMN_CAL_CalculationTimeframe();
                        timeFrame.Load(Connection, Transaction, frame.CMN_CAL_CalculationTimeframeID);
                        timeFrame.Remove(Connection, Transaction);
                    }

                    L5TN_GCTFFT_1529 activeFrame = problematicFrames.Where(i => i.Creation_Timestamp != validFrame).First();
                    ORM_CMN_CAL_CalculationTimeframe validTimeFrame = new ORM_CMN_CAL_CalculationTimeframe();
                    validTimeFrame.Load(Connection, Transaction, activeFrame.CMN_CAL_CalculationTimeframeID);
                    validTimeFrame.IsCalculationTimeframe_Active = true;
                    validTimeFrame.Save(Connection, Transaction);
                }
            }

            bool hasActive = timeFrames.Any(i => i.IsCalculationTimeframe_Active);
            if (!hasActive)
            {
                if (timeFrames.Any(i => i.CalculationTimeframe_StartDate.Year == DateTime.Now.Year))
                {
                    L5TN_GCTFFT_1529 timeFrame = timeFrames.First(i => i.CalculationTimeframe_StartDate.Year == DateTime.Now.Year);
                    ORM_CMN_CAL_CalculationTimeframe validTimeFrame = new ORM_CMN_CAL_CalculationTimeframe();
                    validTimeFrame.Load(Connection, Transaction, timeFrame.CMN_CAL_CalculationTimeframeID);
                    validTimeFrame.IsCalculationTimeframe_Active = true;
                    validTimeFrame.Save(Connection, Transaction);
                }
                else
                {
                    ORM_CMN_CAL_CalculationTimeframe validTimeFrame = new ORM_CMN_CAL_CalculationTimeframe();
                    validTimeFrame.CalculationTimeframe_StartDate        = new DateTime(DateTime.Now.Year, 1, 1);
                    validTimeFrame.CalculationTimeframe_EstimatedEndDate = new DateTime(DateTime.Now.Year, 12, 31);
                    validTimeFrame.IsCalculationTimeframe_Active         = true;
                    validTimeFrame.Save(Connection, Transaction);
                }
            }

            //Put your code here
            return(returnValue);

            #endregion UserCode
        }