/// <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(); }
/// <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); } } }