/// <summary>
 /// Transpose LINQ object to Value object
 /// </summary>
 /// <param name="profitloss">LINQ profitloss object</param>
 public RecalculationVO(Recalculation recalculation)
 {
     ID = recalculation.ID;
     RecalculationStatus = GetRecalculationStatus(recalculation.Status);
     Status = recalculation.Status;
     IsForUpliftRequired = recalculation.IsForUpliftRequired;
     RecalculationDate   = recalculation.Date;
     IndexIds            = recalculation.IndexIds;
     LogFilePath         = recalculation.LogFilePath;
     CreatedByUserId     = recalculation.UserId;
     LastUpdatedByUserId = recalculation.UserId;
 }
        /// <summary>
        /// Set Recalculation status
        /// </summary>
        /// <param name="recalculationVO">recalculation VO object</param>
        /// <param name="status">new recalculation status</param>
        public void SetRecalculationStatus(RecalculationVO recalculationVO, int status)
        {
            //RecalculationVO recalculationVO = null;
            Recalculation recalculation = mdbDataContext.Recalculations.SingleOrDefault(r => r.ID == recalculationVO.ID);

            if (recalculation != null)
            {
                recalculation.Status      = status;
                recalculation.LogFilePath = recalculationVO.LogFilePath;
                //recalculationVO = new RecalculationVO(recalculation);
                mdbDataContext.SubmitChanges();
            }
            //return recalculationVO;
        }
        /// <summary>
        /// Save Request for recalculation
        /// </summary>
        /// <param name="recalculationVO">Recalculation Value object</param>
        public void RequestForRecalculation(RecalculationVO recalculationVO)
        {
            //Insert New Record
            Recalculation recalculation = new Recalculation();

            recalculation.IndexIds            = recalculationVO.IndexIds;
            recalculation.IsForUpliftRequired = recalculationVO.IsForUpliftRequired;
            recalculation.Status = recalculationVO.Status;
            recalculation.Date   = DateTime.Now;
            recalculation.UserId = recalculationVO.CreatedByUserId.Value;

            mdbDataContext.Recalculations.InsertOnSubmit(recalculation);
            mdbDataContext.SubmitChanges();
        }
        /// <summary>
        /// Delete the recalculation Record(s)
        /// </summary>
        /// <param name="Ids">The recalculation id list to remove</param>
        /// <param name="userId">user id</param>
        public void DeleteRecalculation(List <int> Ids, int?userId)
        {
            foreach (var id in Ids)
            {
                if (id != 0)
                {
                    Recalculation recalculation = mdbDataContext.Recalculations.SingleOrDefault(r => r.ID == id);

                    if (recalculation.Status != Convert.ToInt32(Constants.RecalculationStatus.IN_PROGRESS))
                    {
                        recalculation.IsDeleted       = true;
                        recalculation.LastUpdatedDate = DateTime.Now;
                        recalculation.LastUpdatedBy   = userId;
                    }
                }
            }
            mdbDataContext.SubmitChanges();
        }
Пример #5
0
        /// <summary>
        /// Run recalculation process
        /// </summary>
        /// <param name="mdbConnectionString"></param>
        /// <param name="logFilePath"></param>
        private void Run(string mdbConnectionString, string logFilePath)
        {
            Recalculation recalculation = new Recalculation();

            //recalculation.RecalculateMilestones();

            MDBDataContext arbsDataContext = new MDBDataContext(mdbConnectionString);

            List <Library.DataAccess.LINQ.Recalculation> recalculations = arbsDataContext.Recalculations.Where(r => !r.IsDeleted &&
                                                                                                               r.Status == Convert.ToInt32(Library.Common.Constants.RecalculationStatus.PENDING) ||
                                                                                                               r.Status == Convert.ToInt32(Library.Common.Constants.RecalculationStatus.IN_PROGRESS)).ToList();

            if (recalculations.Count > 0)
            {
                bool isRecalculationInProgress = recalculations.Any(r => r.Status == Convert.ToInt32(Library.Common.Constants.RecalculationStatus.IN_PROGRESS));

                // IF recalculation not in running
                if (!isRecalculationInProgress)
                {
                    RecalculationVO recalculationVO = new RecalculationVO(recalculations.FirstOrDefault(r => r.Status == Convert.ToInt32(Library.Common.Constants.RecalculationStatus.PENDING)));
                    //if (recalculationVO != null)
                    //{
                    //    List<int> indexIds = new List<int>();

                    //    if (recalculationVO.IndexIds.Contains(";"))
                    //    {
                    //        string[] ids = recalculationVO.IndexIds.Split(';');
                    //        indexIds.AddRange(ids.Select(id => Convert.ToInt32(id)));
                    //    }
                    //    else
                    //    {
                    //        indexIds.Add(Convert.ToInt32(recalculationVO.IndexIds));
                    //    }
                    //}
                    recalculation.RecalculateMilestone(recalculationVO, 1);
                }
            }
        }