public IEnumerable <TreeViewModel> GetTreeElts(int adminunitParentId, int hubId) { var UnclosedDispatchAllocations = _unitOfWork.DispatchAllocationRepository.FindBy(t => t.ShippingInstructionID.HasValue && t.ProjectCodeID.HasValue && hubId == t.HubID && t.IsClosed == false); BLL.AdminUnit adminUnit = _unitOfWork.AdminUnitRepository.FindById(adminunitParentId); var parentAdminUnits = _unitOfWork.AdminUnitRepository.FindBy(t => t.ParentID == adminunitParentId); if (adminUnit.AdminUnitType.AdminUnitTypeID == 1)//by region { return((from Unc in UnclosedDispatchAllocations where Unc.FDP.AdminUnit.AdminUnit2.AdminUnit2.ParentID == adminunitParentId group Unc by new { Unc.FDP.AdminUnit.AdminUnit2.AdminUnit2 } into b select new TreeViewModel { Name = b.Key.AdminUnit2.Name, Value = b.Key.AdminUnit2.AdminUnitID, Enabled = true, Count = b.Count() }).Union(from ad in parentAdminUnits select new TreeViewModel { Name = ad.Name, Value = ad.AdminUnitID, Enabled = true, Count = 0 } )); } else if (adminUnit.AdminUnitType.AdminUnitTypeID == 2)//by zone { return ((from Unc in UnclosedDispatchAllocations where Unc.FDP.AdminUnit.AdminUnit2.ParentID == adminunitParentId group Unc by new { Unc.FDP.AdminUnit.AdminUnit2 } into b select new TreeViewModel { Name = b.Key.AdminUnit2.Name, Value = b.Key.AdminUnit2.AdminUnitID, Enabled = true, Count = b.Count() }).Union(from ad in parentAdminUnits select new TreeViewModel { Name = ad.Name, Value = ad.AdminUnitID, Enabled = true, Count = 0 } )); } else //if (adminUnit.AdminUnitType.AdminUnitTypeID == 4)//by woreda { return ((from Unc in UnclosedDispatchAllocations where Unc.FDP.AdminUnit.ParentID == adminunitParentId group Unc by new { Unc.FDP.AdminUnit } into b select new TreeViewModel { Name = b.Key.AdminUnit.Name, Value = b.Key.AdminUnit.AdminUnitID, Enabled = true, Count = b.Count() }).Union(from ad in parentAdminUnits select new TreeViewModel { Name = ad.Name, Value = ad.AdminUnitID, Enabled = true, Count = 0 } )); } }
public List <DispatchAllocationViewModelDto> GetCommitedAllocationsByHubDetached(int hubId, string PreferedWeightMeasurment, bool?closedToo, int?AdminUnitId, int?CommodityType) { List <DispatchAllocationViewModelDto> GetUncloDetacheced = new List <DispatchAllocationViewModelDto>(); var unclosed = (from dAll in db.DispatchAllocations where dAll.ShippingInstructionID.HasValue && dAll.ProjectCodeID.HasValue && hubId == dAll.HubID select dAll); if (AdminUnitId.HasValue) { BLL.AdminUnit adminunit = repository.AdminUnit.FindById(AdminUnitId.Value); if (adminunit.AdminUnitType.AdminUnitTypeID == 2)//by region { unclosed = unclosed.Where(p => p.FDP.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID == AdminUnitId.Value); } else if (adminunit.AdminUnitType.AdminUnitTypeID == 3)//by zone { unclosed = unclosed.Where(p => p.FDP.AdminUnit.AdminUnit2.AdminUnitID == AdminUnitId.Value); } else if (adminunit.AdminUnitType.AdminUnitTypeID == 4)//by woreda { unclosed = unclosed.Where(p => p.FDP.AdminUnit.AdminUnitID == AdminUnitId.Value); } //DAVMD.Region = adminunit.FDP.AdminUnit.AdminUnit2.AdminUnit2.; //DAVMD.Zone = adminunit.FDP.AdminUnit.AdminUnit2.Name; //DAVMD.Woreda = adminunit.FDP.AdminUnit.Name; //unclosed = unclosed.Where(p => p.FDP.AdminUnitID == AdminUnitId.Value); } if (closedToo == null || closedToo == false) { unclosed = unclosed.Where(p => p.IsClosed == false); } else { unclosed = unclosed.Where(p => p.IsClosed == true); } if (CommodityType.HasValue) { unclosed = unclosed.Where(p => p.Commodity.CommodityTypeID == CommodityType.Value); } else { unclosed = unclosed.Where(p => p.Commodity.CommodityTypeID == 1);//by default } foreach (var dispatchAllocation in unclosed) { var DAVMD = new DispatchAllocationViewModelDto(); if (PreferedWeightMeasurment.ToUpperInvariant() == "MT" && dispatchAllocation.Commodity.CommodityTypeID == 1) //only for food { DAVMD.Amount = dispatchAllocation.Amount / 10; DAVMD.DispatchedAmount = dispatchAllocation.DispatchedAmount / 10; DAVMD.RemainingQuantityInQuintals = dispatchAllocation.RemainingQuantityInQuintals / 10; } else { DAVMD.Amount = dispatchAllocation.Amount; DAVMD.DispatchedAmount = dispatchAllocation.DispatchedAmount; DAVMD.RemainingQuantityInQuintals = dispatchAllocation.RemainingQuantityInQuintals; } DAVMD.DispatchAllocationID = dispatchAllocation.DispatchAllocationID; DAVMD.CommodityName = dispatchAllocation.Commodity.Name; DAVMD.RequisitionNo = dispatchAllocation.RequisitionNo; DAVMD.BidRefNo = dispatchAllocation.BidRefNo; DAVMD.Region = dispatchAllocation.FDP.AdminUnit.AdminUnit2.AdminUnit2.Name; DAVMD.Zone = dispatchAllocation.FDP.AdminUnit.AdminUnit2.Name; DAVMD.Woreda = dispatchAllocation.FDP.AdminUnit.Name; DAVMD.FDPName = dispatchAllocation.FDP.Name; DAVMD.IsClosed = dispatchAllocation.IsClosed; DAVMD.AmountInUnit = DAVMD.Amount; DAVMD.DispatchedAmountInUnit = dispatchAllocation.DispatchedAmountInUnit; DAVMD.RemainingQuantityInUnit = dispatchAllocation.RemainingQuantityInUnit; GetUncloDetacheced.Add(DAVMD); // db.Detach(dispatchAllocation); } return(GetUncloDetacheced); }