Beispiel #1
0
 internal Coordinate[] GetCoordinatesByFaaliatGroup(int[] faaliatGroupIds, int idPlaceTree)
 {
     using (var db = new PigisEntities())
     {
         return(db.FaaliatGroup.Join(faaliatGroupIds, f => f.Id, fi => fi, (f, fi) => f)
                .SelectMany(f => f.FaaliatToFaaliatGroup)
                .Select(f => f.Faaliat)
                .SelectMany(f => f.Eshterak)
                .Where(GetEshterakPredicate(idPlaceTree))
                .Select(c => new                //(this select is made because linq to entity doesn't support struct(Coordinate) types)
         {
             CoordinateId = c.Id,
             PotansielAvalie = c.PotansielAvalie,
             Latitude = c.Geo.Latitude.Value,
             Longitude = c.Geo.Longitude.Value,
             IdPlaceTree = idPlaceTree,
             CoordinateName = c.EshterakLanguage.FirstOrDefault(f => f.IdLanguage == SystemSetting.IdLanguage).Name,
             CoordinateAddress = c.EshterakAddress.FirstOrDefault(aa => aa.IdEshterak == c.Id) == null ? "فاقد آدرس" : c.EshterakAddress.FirstOrDefault(aa => aa.IdEshterak == c.Id).EshterakAddressLanguage.FirstOrDefault(l => l.IdLanguage == SystemSetting.IdLanguage).Address,
             CoordinateFaaliatName = c.Faaliat.FaaliatLanguage.FirstOrDefault(f => f.IdLanguage == SystemSetting.IdLanguage) != null ? c.Faaliat.FaaliatLanguage.FirstOrDefault(f => f.IdLanguage == SystemSetting.IdLanguage).Description : "فاقد نام"
         })
                .ToList()
                .Select(c => new Coordinate
         {
             CoordinateId = c.CoordinateId,
             PotansielAvalie = c.PotansielAvalie,
             Latitude = c.Latitude,
             Longitude = c.Longitude,
             IdPlaceTree = idPlaceTree,
             CoordinateName = c.CoordinateName,
             CoordinateAddress = c.CoordinateAddress,
             CoordinateFaaliatName = c.CoordinateFaaliatName
         }).ToArray());
     }
 }
Beispiel #2
0
        internal List <PathsEshterakGridModel> GetEshterakForPath(Guid temporaryId, List <PathGrid> gridData)
        {
            if (gridData == null)
            {
                throw new ArgumentNullException(nameof(gridData), "gridData Argument cannot be null.");
            }

            using (var db = new PigisEntities())
            {
                var eshterakIds = gridData.Single(g => g.TemporaryId == temporaryId).PointClusterCoordinates.Select(p => p.CoordinateId);

                return
                    (db.Eshterak.Join(eshterakIds, e => e.Id, es => es, (e, es) => e).ToList()
                     .Select(
                         (e, index) =>
                         new PathsEshterakGridModel
                {
                    EshterakId = e.Id,
                    PathTemporaryId = temporaryId,
                    RowNumber = ++index,
                    GeoLocation = e.Geo,
                    Faaliat = e.Faaliat.FaaliatLanguage.FirstOrDefault(f => f.IdLanguage == SystemSetting.IdLanguage)?.Description,
                    CustomerCode = 0,
                    CustomerName = e.EshterakLanguage.FirstOrDefault(f => f.IdLanguage == SystemSetting.IdLanguage)?.Name,
                    SalePotential = 0,
                    Address = e.EshterakAddress.FirstOrDefault(aa => aa.IdEshterak == e.Id) != null ?
                              e.EshterakAddress.FirstOrDefault(aa => aa.IdEshterak == e.Id).EshterakAddressLanguage.FirstOrDefault(l => l.IdLanguage == SystemSetting.IdLanguage).Address : "",      //e.EshterakLanguage.FirstOrDefault(f => f.IdLanguage == SystemSetting.IdLanguage)?.Address,
                    GradeAvaliyeBazar = e.PotansielAvalie,
                    RialiGrade = 0
                }).ToList());
            }
        }
Beispiel #3
0
 internal List <SelectListItem> GetFaaliatGroupSelectListItems(int cityId)
 {
     using (var db = new PigisEntities())
     {
         return(db.FaaliatGroup
                .Where(p => p.IdPlaceTree == cityId)
                .Select(
                    p =>
                    new SelectListItem
         {
             Text = p.FaaliatGroupLanguage.FirstOrDefault(t => t.IdLanguage == SystemSetting.IdLanguage).Description,
             Value = p.Id.ToString()
         })
                .ToList());
     }
 }
Beispiel #4
0
 internal List <PointsPerFaaliat> CalculateSubmittedPoints(int[] faaliatGroupIds, int idPlaceTree)
 {
     using (var db = new PigisEntities())
     {
         return(db.FaaliatGroupLanguage
                .Where(f => f.IdLanguage == SystemSetting.IdLanguage)
                .Join(faaliatGroupIds, f => f.IdFaaliatGroup, fa => fa, (f, fa) => f)
                .Select(f => new PointsPerFaaliat
         {
             FaaliatName = f.Description,
             TotalSubmittedPoints = f.FaaliatGroup.FaaliatToFaaliatGroup
                                    .Select(fa => fa.Faaliat)
                                    .SelectMany(fa => fa.Eshterak)
                                    .Count(e => e.PlaceTree.Id == idPlaceTree &&
                                           (!e.EshterakToRoad.Any(t => t.Road.Vaaziat == true) || !e.EshterakToRoad.Any()) &&
                                           (e.IdTypeVaziatEshterak == 2 || e.IdTypeVaziatEshterak == 3) &&
                                           e.Geo != null)
         }).ToList());
     }
 }
Beispiel #5
0
        public void InsertPath(List <PathGrid> pathGrid, List <PathGrid> gridData, int tedadNoghatDarMasir)
        {
            if (gridData == null)
            {
                throw new ArgumentNullException(nameof(gridData), "gridData Argument cannot be null.");
            }

            using (var db = new PigisEntities())
            {
                pathGrid.ForEach(p => p.PointClusterCoordinates.AddRange(gridData.Single(g => g.TemporaryId == p.TemporaryId).PointClusterCoordinates));

                var roads =
                    pathGrid.Select(
                        p =>
                        new Road
                {
                    TedadNoghatDarMasir = p.PointClusterCoordinates.Count,
                    BazeZamaniToor      = p.BazeZamaniTour,
                    BazeZamaniTozie     = p.ToziZamaniPishfarz,
                    RoadLanguage        = new List <RoadLanguage> {
                        new RoadLanguage {
                            IdLanguage = SystemSetting.IdLanguage, Name = p.PathName
                        }
                    },
                    TarikhMiladiEtebar      = p.TarikhEtebarFrom.ToShortMiladiDateTime(),
                    TarikhMiladiPayanEtebar = p.TarikhEtebarTo.ToShortMiladiDateTime(),
                    TarikhShamsiEtebar      = p.TarikhEtebarFrom.ArabicDigitToWestern(),
                    TarikhPayanEtebar       = p.TarikhEtebarTo.ArabicDigitToWestern(),
                    IdPlaceTree             = p.IdPlaceTree,
                    EshterakToRoad          = p.PointClusterCoordinates.Select(c => new EshterakToRoad {
                        IdEshterak = c.CoordinateId, Id = Guid.NewGuid()
                    }).ToList(),
                    //PersonelToRoad = new List<PersonelToRoad> { new PersonelToRoad { IdPersonel = SM.General.IdPersonel.Value, IsActive = true } },
                    TedadNoghte = tedadNoghatDarMasir,
                    Vaaziat     = true
                }).ToList();

                db.Road.AddRange(roads);
                db.SaveChanges();
            }
        }