public bool IsWellQueryExisting(WellQuery wellQuery)
        {
            try
            {
                if (wellQuery == null)
                {
                    return(false);
                }
                using (var db = new QueryBuilderEntities())
                {
                    if (db.WellQueries.Any())
                    {
                        if (db.WellQueries.Count(m => m.WellTypeId == wellQuery.WellTypeId && m.CompanyId == wellQuery.CompanyId &&
                                                 m.FieldId == wellQuery.FieldId &&
                                                 (m.StartDate != null && m.StartDate.Value.Year == wellQuery.StartDate.Value.Year && wellQuery.StartDate != null) &&
                                                 (m.EndDate != null && m.EndDate.Value.Year == wellQuery.EndDate.Value.Year && wellQuery.EndDate != null) &&
                                                 m.WellClassId == wellQuery.WellClassId &&
                                                 m.TerrainId == wellQuery.TerrainId &&
                                                 m.ZoneId == wellQuery.ZoneId
                                                 ) > 0)
                        {
                            return(true);
                        }

                        return(false);
                    }
                    return(false);
                }
            }
            catch (Exception ex)
            {
                ErrorLogger.LogEror(ex.StackTrace, ex.Source, ex.Message);
                return(false);
            }
        }
Esempio n. 2
0
        public ActionResult GetWells(WellQuery queryBuilder)
        {
            if (queryBuilder == null)
            {
                return(Json(new List <WellReportObject>(), JsonRequestBehavior.AllowGet));
            }


            if (queryBuilder.WellTypeId < 1 && queryBuilder.CompanyId < 1 && ((queryBuilder.StartDate != null && queryBuilder.StartDate.Value.Year == 0001) || (queryBuilder.StartDate == null)) && ((queryBuilder.EndDate != null && queryBuilder.EndDate.Value.Year == 0001) || (queryBuilder.EndDate == null)) && queryBuilder.BlockId < 1 && queryBuilder.WellClassId < 1 && queryBuilder.FieldId < 1 && queryBuilder.TerrainId < 1 && queryBuilder.ZoneId < 1)
            {
                return(Json(new List <WellReportObject>(), JsonRequestBehavior.AllowGet));
            }

            var wellList = new WellServices().GetOrderedWellReportObjects(queryBuilder) ?? new List <WellReportObject>();

            if (!wellList.Any())
            {
                return(Json(new List <WellReportObject>(), JsonRequestBehavior.AllowGet));
            }
            Session["_successfulWellQuery"] = queryBuilder;
            var jsonResult = Json(wellList, JsonRequestBehavior.AllowGet);

            jsonResult.MaxJsonLength = int.MaxValue;
            return(jsonResult);
        }
        public long AddWellQueryCheckDuplicate(WellQuery wellQuery)
        {
            try
            {
                if (wellQuery == null)
                {
                    return(-2);
                }
                using (var db = new QueryBuilderEntities())
                {
                    if (db.WellQueries.Any())
                    {
                        if (db.WellQueries.Count(m => m.WellTypeId == wellQuery.WellTypeId && m.CompanyId == wellQuery.CompanyId &&
                                                 m.FieldId == wellQuery.FieldId &&
                                                 (m.StartDate != null && m.StartDate.Value.Year == wellQuery.StartDate.Value.Year && wellQuery.StartDate != null) &&
                                                 (m.EndDate != null && m.EndDate.Value.Year == wellQuery.EndDate.Value.Year && wellQuery.EndDate != null) &&
                                                 m.WellClassId == wellQuery.WellClassId &&
                                                 m.TerrainId == wellQuery.TerrainId &&
                                                 m.BlockId == wellQuery.TerrainId &&
                                                 m.ZoneId == wellQuery.ZoneId
                                                 ) > 0)
                        {
                            return(-3);
                        }

                        if (db.WellQueries.Count(m => m.WellQueryName.ToLower().Trim().Replace(" ", "") == wellQuery.WellQueryName.ToLower().Trim().Replace(" ", "")
                                                 ) > 0)
                        {
                            return(-4);
                        }
                    }

                    var processedWellQuery = db.WellQueries.Add(wellQuery);
                    db.SaveChanges();
                    return(processedWellQuery.WellQueryId);
                }
            }
            catch (Exception ex)
            {
                ErrorLogger.LogEror(ex.StackTrace, ex.Source, ex.Message);
                return(0);
            }
        }
        public List <WellReportObject> GetOrderedWellReportObjects(WellQuery queryBuilder)
        {
            try
            {
                using (var db = new DPRDataMigrationEngineDBEntities())
                {
                    if (queryBuilder != null)

                    {
                        if (queryBuilder.StartDate != null && queryBuilder.StartDate.Value.Year > 0001 && ((queryBuilder.EndDate != null && queryBuilder.EndDate.Value.Year == 0001) || (queryBuilder.EndDate == null)))
                        {
                            var startYear  = queryBuilder.StartDate.Value.Year;
                            var startMonth = queryBuilder.StartDate.Value.Month;
                            var query      = (
                                from w in db.Wells.Where(x => (x.SpudDate != null && x.SpudDate.Value.Year == startYear && x.SpudDate.Value.Month == startMonth)).OrderBy(m => m.Name)
                                join wt in db.WellTypes on w.WellTypeId equals wt.WellTypeId where ((queryBuilder.WellTypeId > 0 && queryBuilder.WellTypeId == wt.WellTypeId) || (queryBuilder.WellTypeId < 1 && w.WellTypeId == wt.WellTypeId))
                                join wc in db.WellClassifications on w.WellId equals wc.WellId
                                join wcc in db.WellClasses on wc.WellClassId equals wcc.WellClassId
                                join f in db.Fields on w.FieldId equals f.FieldId  where ((queryBuilder.FieldId > 0 && queryBuilder.FieldId == f.FieldId) || (queryBuilder.FieldId < 1 && w.FieldId == f.FieldId))
                                join b in db.Blocks on f.BlockId equals b.BlockId
                                where ((queryBuilder.BlockId > 0 && queryBuilder.BlockId == b.BlockId) || (queryBuilder.BlockId < 1 && f.BlockId == b.BlockId))
                                join c in db.Companies on f.CompanyId equals c.CompanyId  where ((queryBuilder.CompanyId > 0 && queryBuilder.CompanyId == c.CompanyId) || (queryBuilder.CompanyId < 1 && f.CompanyId == c.CompanyId))
                                join t in db.Terrains on f.TerrainId equals t.TerrainId  where ((queryBuilder.TerrainId > 0 && queryBuilder.TerrainId == t.TerrainId) || (queryBuilder.TerrainId < 1 && f.TerrainId == t.TerrainId))
                                join z in db.Zones on f.ZoneId equals z.ZoneId
                                select new WellReportObject
                            {
                                Name = w.Name,
                                WellId = w.WellId,
                                SpudDate = w.SpudDate,
                                TechnicalAllowable = w.TechnicalAllowable > 0 ? (double)w.TechnicalAllowable : 0,
                                TotalDept = w.TotalDept > 0 ? (double)w.TotalDept : 0,
                                Remarks = w.Remarks,
                                ZoneName = z.Name,
                                BlockName = b.Name,
                                WellClassName = wcc.Name,
                                TerrainName = t.Name,
                                FieldName = f.Name,
                                CompanyName = c.Name,
                                WellTypeName = wt.Title
                            }).ToList();

                            if (!query.Any())
                            {
                                return(new List <WellReportObject>());
                            }
                            query.ForEach(m =>
                            {
                                if (m.SpudDate != null)
                                {
                                    m.Date = ((DateTime)m.SpudDate).ToString("dd/MM/yyyy");
                                }
                            });

                            return(query);
                        }

                        if (((queryBuilder.StartDate != null && queryBuilder.StartDate.Value.Year == 0001) || (queryBuilder.StartDate == null)) && ((queryBuilder.EndDate != null && queryBuilder.EndDate.Value.Year == 0001) || queryBuilder.EndDate == null))
                        {
                            var query = (
                                from w in db.Wells.OrderBy(m => m.Name)
                                join wt in db.WellTypes on w.WellTypeId equals wt.WellTypeId
                                where ((queryBuilder.WellTypeId > 0 && queryBuilder.WellTypeId == wt.WellTypeId) || (queryBuilder.WellTypeId < 1 && w.WellTypeId == wt.WellTypeId))
                                join wc in db.WellClassifications on w.WellId equals wc.WellId
                                join wcc in db.WellClasses on wc.WellClassId equals wcc.WellClassId
                                join f in db.Fields on w.FieldId equals f.FieldId
                                where ((queryBuilder.FieldId > 0 && queryBuilder.FieldId == f.FieldId) || (queryBuilder.FieldId < 1 && w.FieldId == f.FieldId))
                                join b in db.Blocks on f.BlockId equals b.BlockId
                                where ((queryBuilder.BlockId > 0 && queryBuilder.BlockId == b.BlockId) || (queryBuilder.BlockId < 1 && f.BlockId == b.BlockId))
                                join c in db.Companies on f.CompanyId equals c.CompanyId
                                where ((queryBuilder.CompanyId > 0 && queryBuilder.CompanyId == c.CompanyId) || (queryBuilder.CompanyId < 1 && f.CompanyId == c.CompanyId))
                                join t in db.Terrains on f.TerrainId equals t.TerrainId
                                where ((queryBuilder.TerrainId > 0 && queryBuilder.TerrainId == t.TerrainId) || (queryBuilder.TerrainId < 1 && f.TerrainId == t.TerrainId))
                                join z in db.Zones on f.ZoneId equals z.ZoneId
                                select new WellReportObject
                            {
                                Name = w.Name,
                                WellId = w.WellId,
                                SpudDate = w.SpudDate,
                                TechnicalAllowable = w.TechnicalAllowable > 0 ? (double)w.TechnicalAllowable : 0,
                                TotalDept = w.TotalDept > 0 ? (double)w.TotalDept : 0,
                                Remarks = w.Remarks,
                                ZoneName = z.Name,
                                BlockName = b.Name,
                                WellClassName = wcc.Name,
                                TerrainName = t.Name,
                                FieldName = f.Name,
                                CompanyName = c.Name,
                                WellTypeName = wt.Title
                            }).ToList();


                            if (!query.Any())
                            {
                                return(new List <WellReportObject>());
                            }
                            query.ForEach(m =>
                            {
                                if (m.SpudDate != null)
                                {
                                    m.Date = ((DateTime)m.SpudDate).ToString("dd/MM/yyyy");
                                }
                            });

                            return(query);
                        }

                        if (queryBuilder.StartDate != null && queryBuilder.StartDate.Value.Year > 0001 && queryBuilder.EndDate != null && queryBuilder.EndDate.Value.Year > 0001)
                        {
                            var startYear  = queryBuilder.StartDate.Value.Year;
                            var startMonth = queryBuilder.StartDate.Value.Month;
                            var endYear    = queryBuilder.EndDate.Value.Year;
                            var endMonth   = queryBuilder.EndDate.Value.Month;

                            var query = (
                                from w in db.Wells.Where(x => ((x.SpudDate != null && x.SpudDate.Value.Year >= startYear && x.SpudDate.Value.Month >= startMonth) && (x.SpudDate.Value.Year <= endYear && x.SpudDate.Value.Month <= endMonth))).OrderBy(m => m.Name)
                                join wt in db.WellTypes on w.WellTypeId equals wt.WellTypeId
                                where ((queryBuilder.WellTypeId > 0 && queryBuilder.WellTypeId == wt.WellTypeId) || (queryBuilder.WellTypeId < 1 && w.WellTypeId == wt.WellTypeId))
                                join wc in db.WellClassifications on w.WellId equals wc.WellId
                                join wcc in db.WellClasses on wc.WellClassId equals wcc.WellClassId
                                join f in db.Fields on w.FieldId equals f.FieldId
                                where ((queryBuilder.FieldId > 0 && queryBuilder.FieldId == f.FieldId) || (queryBuilder.FieldId < 1 && w.FieldId == f.FieldId))
                                join b in db.Blocks on f.BlockId equals b.BlockId
                                where ((queryBuilder.BlockId > 0 && queryBuilder.BlockId == b.BlockId) || (queryBuilder.BlockId < 1 && f.BlockId == b.BlockId))
                                join c in db.Companies on f.CompanyId equals c.CompanyId
                                where ((queryBuilder.CompanyId > 0 && queryBuilder.CompanyId == c.CompanyId) || (queryBuilder.CompanyId < 1 && f.CompanyId == c.CompanyId))
                                join t in db.Terrains on f.TerrainId equals t.TerrainId
                                where ((queryBuilder.TerrainId > 0 && queryBuilder.TerrainId == t.TerrainId) || (queryBuilder.TerrainId < 1 && f.TerrainId == t.TerrainId))
                                join z in db.Zones on f.ZoneId equals z.ZoneId
                                select new WellReportObject
                            {
                                Name = w.Name,
                                WellId = w.WellId,
                                SpudDate = w.SpudDate,
                                TechnicalAllowable = w.TechnicalAllowable > 0 ? (double)w.TechnicalAllowable : 0,
                                TotalDept = w.TotalDept > 0 ? (double)w.TotalDept : 0,
                                Remarks = w.Remarks,
                                ZoneName = z.Name,
                                WellClassName = wcc.Name,
                                TerrainName = t.Name,
                                BlockName = b.Name,
                                FieldName = f.Name,
                                CompanyName = c.Name,
                                WellTypeName = wt.Title,
                            }).ToList();

                            if (!query.Any())
                            {
                                return(new List <WellReportObject>());
                            }
                            query.ForEach(m =>
                            {
                                if (m.SpudDate != null)
                                {
                                    m.Date = ((DateTime)m.SpudDate).ToString("dd/MM/yyyy");
                                }
                            });

                            return(query);
                        }
                    }
                    return(new List <WellReportObject>());
                }
            }
            catch (Exception ex)
            {
                ErrorLogger.LogEror(ex.StackTrace, ex.Source, ex.Message);
                return(new List <WellReportObject>());
            }
        }