/// <summary>
 /// 初始化设备相关信息
 /// </summary>
 /// <param name="model"></param>
 /// <param name="properties"></param>
 private void InitDeviceModel(RestaurantDevice model, List <string> properties)
 {
     model.DeviceTypeId = LampblackConfig.DeviceTypeGuid;
     properties.Add("DeviceTypeId");
     model.FirmwareSetId = LampblackConfig.FirmwareSetGuid;
     properties.Add("FirmwareSetId");
 }
Example #2
0
        public DbEntityValidationException AddOrUpdateRestaurantDevice(RestaurantDevice model, List <string> propertyNames)
        {
            using (var repo = Repo <RestaurantDeviceRepository>())
            {
                try
                {
                    if (model.Id == Guid.Empty)
                    {
                        var dbModel = repo.CreateDefaultModel();
                        foreach (var propertyName in propertyNames)
                        {
                            dbModel.GetType().GetProperty(propertyName).SetValue(dbModel, model.GetType().GetProperty(propertyName).GetValue(model));
                        }
                        repo.AddOrUpdateDoCommit(dbModel);
                    }
                    else
                    {
                        repo.PartialUpdateDoCommit(model, propertyNames);
                    }
                }
                catch (DbEntityValidationException ex)
                {
                    return(ex);
                }
            }

            return(null);
        }
 public MonitorData GetDeviceCleanerCurrent(RestaurantDevice device, DateTime checkDateTime)
 {
     using (var repo = Repo <MonitorDataRepository>())
     {
         var datas = repo.GetModels(data => data.ProjectIdentity == device.Project.Identity &&
                                    data.CommandDataId == CommandDataId.CleanerCurrent &&
                                    data.UpdateTime > checkDateTime).ToList();
         return(datas.FirstOrDefault(obj => obj.DeviceIdentity == device.Identity));
     }
 }
Example #4
0
 /// <summary>
 /// 获取风扇运行时间
 /// </summary>
 /// <param name="dev"></param>
 /// <returns></returns>
 private string GetFanRunTimeString(RestaurantDevice dev)
 {
     using (var repo = Repo <RunningTimeRepository>())
     {
         var today    = DateTime.Parse($"{DateTime.Now.Year}-{DateTime.Now.Month}-{DateTime.Now.Day}");
         var tomorrow = today.AddDays(1);
         var ticks    = repo.GetModels(r => r.Type == RunningTimeType.Fan &&
                                       r.ProjectIdentity == dev.Project.Identity &&
                                       r.DeviceIdentity == dev.Identity &&
                                       r.UpdateTime > today &&
                                       r.UpdateTime < tomorrow)
                        .Select(item => item.RunningTimeTicks)
                        .DefaultIfEmpty(0)
                        .Sum(obj => obj);
         var timeSpan = TimeSpan.FromTicks(ticks);
         return($"{timeSpan.Hours}小时{timeSpan.Minutes}分{timeSpan.Seconds}秒");
     }
 }
Example #5
0
        /// <summary>
        /// 获取设备最新数据
        /// </summary>
        /// <param name="dev"></param>
        /// <returns></returns>
        private List <MonitorData> GetLastMonitorData(RestaurantDevice dev)
        {
            var checkDate = DateTime.Now.Trim(TimeSpan.TicksPerSecond).AddMinutes(-2);

            using (var dataRepo = Repo <MonitorDataRepository>())
            {
                var protocol =
                    Repo <ProtocolDataRepository>().GetModels(obj => obj.DeviceIdentity == dev.Identity)
                    .OrderByDescending(d => d.UpdateTime).FirstOrDefault();
                if (protocol == null || protocol.UpdateTime < checkDate)
                {
                    return(new List <MonitorData>());
                }

                var datas = dataRepo.GetModels(data => data.ProjectIdentity == dev.Project.Identity && data.ProtocolDataId == protocol.Id).ToList();

                return(datas);
            }
        }
        public ActionResult EditDevice(RestaurantDevice model)
        {
            var propertyNames = Request.Form.AllKeys.Where(field => field != "Id" && field != "X-Requested-With").ToList();

            if (model.Id == Guid.Empty)
            {
                InitDeviceModel(model, propertyNames);
            }

            var exception = ProcessInvoke <RestaurantDeviceProcess>().AddOrUpdateRestaurantDevice(model, propertyNames);

            if (exception != null)
            {
                GetDeviceRelatedItems();
                return(View(model));
            }

            return(RedirectToAction("SubmitSuccess", "Common",
                                    new { targetAction = "EditDevice", targetcontroller = "Management", target = "slide-up-content", postform = "device" }));
        }