Example #1
0
 public SiteRequirementDetailsForDispatch GetSiteRequirementDetails(int siteRequirementId)
 {
     try {
         SiteRequirementDetailsForDispatch siteRequirementDetailsForDispatch = new SiteRequirementDetailsForDispatch();
         var result = _context.Query <SiteRequirementDetailsForDispatch> ().FromSqlRaw("exec SP_GetSiteRequirement {0}", siteRequirementId).ToList();
         siteRequirementDetailsForDispatch = _mapper.Map <List <SiteRequirementDetailsForDispatch> > (result).FirstOrDefault();
         return(siteRequirementDetailsForDispatch);
     } catch (Exception ex) {
         throw ex;
     }
 }
        public List <TWCCDispatchInnerStructure> GetTWCCInnerStructureDetails(int structureId, int siteRequirementId, commonEnum.TWCCDispatchReleaseDate releaseFilter, bool isAttributeBasedFilter)
        {
            List <TWCCDispatchInnerStructure> result = new List <TWCCDispatchInnerStructure>();
            List <TWCCDispatchInnerStructure> lstTWCCDispatchInnerStructure = new List <TWCCDispatchInnerStructure>();

            lstTWCCDispatchInnerStructure = _siteDispatchRepository.GetTWCCInnerStructureDetails(structureId);
            List <TWCCDispatchInnerStructure> lstFilteredResult = new List <TWCCDispatchInnerStructure>();
            List <TWCCDispatchInnerStructure> lstDistinctResult = new List <TWCCDispatchInnerStructure>();
            SiteRequirementDetailsForDispatch siteRequirementDetailsForDispatch = new SiteRequirementDetailsForDispatch();

            siteRequirementDetailsForDispatch = _siteDispatchRepository.GetSiteRequirementDetails(siteRequirementId);
            foreach (var item in lstTWCCDispatchInnerStructure)
            {
                item.SiteRequirementStructureAttributes = siteRequirementDetailsForDispatch.StrutureAttributes;
                item.SiteRequirementId = siteRequirementDetailsForDispatch.SiteRequirementId;
                item.PlanStartDate     = siteRequirementDetailsForDispatch.PlanStartDate;
                item.PlanReleaseDate   = siteRequirementDetailsForDispatch.PlanEndDate;
                if (!isAttributeBasedFilter)
                {
                    List <TWCCJsonValue> projectStrutureAttibutesToJson     = JsonConvert.DeserializeObject <List <TWCCJsonValue> >(item.ProjectStructureAttributes);
                    List <TWCCJsonValue> siteRequirementStructureAttributes = JsonConvert.DeserializeObject <List <TWCCJsonValue> >(siteRequirementDetailsForDispatch.StrutureAttributes);
                    bool isCorrectAttributes = false;
                    foreach (var projectValue in projectStrutureAttibutesToJson)
                    {
                        var siteValue = siteRequirementStructureAttributes.Find(x => x.name == projectValue.name);
                        if (siteValue != null)
                        {
                            if (projectValue.value == siteValue.value)
                            {
                                isCorrectAttributes = true;
                            }
                            else
                            {
                                isCorrectAttributes = false;
                                break;
                            }
                        }
                    }
                    if (isCorrectAttributes)
                    {
                        lstFilteredResult.Add(item);
                    }
                }
                else
                {
                    lstFilteredResult.Add(item);
                }
            }
            lstDistinctResult = lstFilteredResult.Distinct().ToList();
            switch (releaseFilter)
            {
            case commonEnum.TWCCDispatchReleaseDate.ONEMONTH:

                DateTime currentStartDate = DateTime.Now.AddDays(-30);
                DateTime currentEndDate   = DateTime.Now;
                result = lstDistinctResult.FindAll(x => x.ExpReleaseDate >= currentStartDate && x.ExpReleaseDate <= currentEndDate);
                break;

            case commonEnum.TWCCDispatchReleaseDate.THREEMONTHS:
                currentStartDate = DateTime.Now.AddDays(-90);
                currentEndDate   = DateTime.Now;
                result           = lstDistinctResult.FindAll(x => x.ExpReleaseDate >= currentStartDate && x.ExpReleaseDate <= currentEndDate);
                break;

            case commonEnum.TWCCDispatchReleaseDate.SIXMONTHS:
                currentStartDate = DateTime.Now.AddDays(-180);
                currentEndDate   = DateTime.Now;
                result           = lstDistinctResult.FindAll(x => x.ExpReleaseDate >= currentStartDate && x.ExpReleaseDate <= currentEndDate);
                break;

            default:
                result = lstDistinctResult;
                break;
            }
            return(result);
        }