Example #1
0
        public ActionResult CreatePointMeterLineItems(long meterGroupId, long?assetId, long?locationId)
        {
            var point = _pointRepository.GetAll()
                        .Where(p => ((assetId != null && p.AssetId == assetId) ||
                                     (locationId != null && p.LocationId == locationId)))
                        .FirstOrDefault();

            if (point != null)
            {
                if (point.PointMeterLineItems.Any(m => m.LastReadingValue != null))
                {
                    ModelState.AddModelError("", _localizationService.GetResource("Point.CannotChangeMeterGroup"));
                }
            }
            if (ModelState.IsValid)
            {
                if (point != null)
                {
                    point.PointMeterLineItems.Clear();
                }
                else
                {
                    point = new Point
                    {
                        AssetId    = assetId,
                        LocationId = locationId
                    };
                    _pointRepository.Insert(point);
                }

                point.MeterGroupId = meterGroupId;
                var meterLineItems = _meterLineItemRepository.GetAll().Where(m => m.MeterGroupId == meterGroupId).ToList();
                var displayOrder   = 0;
                foreach (var meterLineItem in meterLineItems)
                {
                    displayOrder += 1;
                    var pointMeterLineItem = new PointMeterLineItem
                    {
                        Point        = point,
                        Meter        = meterLineItem.Meter,
                        MeterId      = meterLineItem.MeterId,
                        DisplayOrder = displayOrder
                    };
                    point.PointMeterLineItems.Add(pointMeterLineItem);
                }
                _pointRepository.Update(point);
                this._dbContext.SaveChanges();
                return(Json(new { pointId = point.Id }));
            }
            else
            {
                return(Json(new { Errors = ModelState.Errors().ToHtmlString() }));
            }
        }
Example #2
0
        public void CreateMeterEventHistory(PointMeterLineItem item, Reading newReading)
        {
            var meterEvents = _meterEventRepository.GetAll().Where(m => m.MeterId == item.MeterId && m.PointId == item.PointId).ToList();

            foreach (var meterEvent in meterEvents)
            {
                if ((meterEvent.LowerLimit.HasValue && newReading.ReadingValue < meterEvent.LowerLimit) ||
                    (meterEvent.UpperLimit.HasValue && newReading.ReadingValue > meterEvent.UpperLimit))
                {
                    var meterEventHistory = new MeterEventHistory();
                    meterEventHistory.MeterEventId       = meterEvent.Id;
                    meterEventHistory.GeneratedReading   = newReading.ReadingValue;
                    meterEventHistory.IsWorkOrderCreated = false;
                    _meterEventHistoryRepository.Insert(meterEventHistory);
                }
            }
        }
Example #3
0
        /// <summary>
        /// Create PointMeterLineItem for Asset or Location
        /// ONLY assetId != null OR locationId != null
        /// </summary>
        public ActionResult CreatePointMeterLineItem(long pointId, long?assetId, long?locationId)
        {
            var point = _pointRepository.GetAll()
                        .Where(p => (assetId != null && p.AssetId == assetId) ||
                               (locationId != null && p.LocationId == locationId))
                        .FirstOrDefault();

            if (point == null)
            {
                point = new Point
                {
                    AssetId    = assetId,
                    LocationId = locationId
                };
                _pointRepository.Insert(point);
            }

            var pointMeterLineItem = new PointMeterLineItem
            {
                IsNew = true,
                Point = point
            };

            var maxDisplayOrder = _pointMeterLineItemRepository.GetAll().Where(p => p.PointId == pointId).Max(p => (int?)p.DisplayOrder) ?? 0;

            pointMeterLineItem.DisplayOrder = maxDisplayOrder + 1;
            _pointMeterLineItemRepository.Insert(pointMeterLineItem);

            this._dbContext.SaveChanges();

            var model = new PointMeterLineItemModel();

            model = pointMeterLineItem.ToModel();
            var html = this.PointMeterLineItemPanel(model);

            return(Json(new { Id = pointMeterLineItem.Id, pointId = point.Id, Html = html }));
        }
Example #4
0
 public static PointMeterLineItemModel ToModel(this PointMeterLineItem entity)
 {
     return(entity.MapTo <PointMeterLineItem, PointMeterLineItemModel>());
 }
Example #5
0
 public static PointMeterLineItem ToEntity(this PointMeterLineItemModel model, PointMeterLineItem destination)
 {
     return(model.MapTo(destination));
 }