Пример #1
0
 private static void RmoveManyToMany(AllInOneContext.AllInOneContext db, User User)
 {
     //手动处理UserRole 多对多的关系,待找到合适的方法后再调整
     if (User.UserManyToRole != null)
     {
         List <UserRole> delList = new List <UserRole>();
         foreach (UserRole rp in User.UserManyToRole)
         {
             UserRole del = db.UserRole
                            .FirstOrDefault(p => p.UserId.Equals(rp.UserId) && p.RoleId.Equals(rp.RoleId));
             if (del != null)
             {
                 delList.Add(del);
             }
         }
         db.UserRole.RemoveRange(delList);
         db.SaveChanges();
     }
     //手动处理ControlResources 多对多的关系,待找到合适的方法后再调整
     if (User.ControlResources != null)
     {
         List <ControlResources> delList = new List <ControlResources>();
         foreach (ControlResources rp in User.ControlResources)
         {
             ControlResources del = db.ControlResources
                                    .FirstOrDefault(p => p.ControlResourcesId.Equals(rp.ControlResourcesId));
             if (del != null)
             {
                 delList.Add(del);
             }
         }
         db.ControlResources.RemoveRange(delList);
         db.SaveChanges();
     }
     //手动处理UserSettingMapping 一对多的关系,待找到合适的方法后再调整
     if (User.UserSettings != null)
     {
         List <UserSettingMapping> delList = new List <UserSettingMapping>();
         foreach (UserSettingMapping rp in User.UserSettings)
         {
             UserSettingMapping del = db.Set <UserSettingMapping>()
                                      .FirstOrDefault(p => p.UserSettingId.Equals(rp.UserSettingId));
             if (del != null)
             {
                 delList.Add(del);
             }
         }
         db.Set <UserSettingMapping>().RemoveRange(delList);
         db.SaveChanges();
     }
 }
Пример #2
0
        public IActionResult Delete(Guid id)
        {
            try
            {
                using (var db = new AllInOneContext.AllInOneContext())
                {
                    using (var tran = db.Database.BeginTransaction())
                    {
                        Schedule data = db.Schedule
                                        .Include(t => t.ScheduleType)
                                        .Include(t => t.ScheduleCycle).ThenInclude(t => t.DayPeriods)
                                        .Include(t => t.ScheduleCycle).ThenInclude(t => t.CycleType)
                                        .FirstOrDefault(p => p.ScheduleId.Equals(id));

                        if (data == null)
                        {
                            return(NoContent());
                        }
                        //移除LIST
                        RemoveList(db, data);
                        //移除ScheduleCycle
                        ScheduleCycle scheduleCycle = db.Set <ScheduleCycle>()
                                                      .FirstOrDefault(p => p.ScheduleCycleId.Equals(data.ScheduleCycle.ScheduleCycleId));
                        if (scheduleCycle != null)
                        {
                            db.Set <ScheduleCycle>().Remove(scheduleCycle);
                        }
                        db.Schedule.Remove(data);
                        db.SaveChanges();
                        tran.Commit();
                        return(new NoContentResult());
                    }
                }
            }
            catch (DbUpdateException dbEx)
            {
                _logger.LogError("Delete:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);

                return(BadRequest(new ApplicationException {
                    ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                }));
            }
            catch (System.Exception ex)
            {
                _logger.LogError("Delete:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
                return(BadRequest(new ApplicationException {
                    ErrorCode = "Unknown", ErrorMessage = ex.Message
                }));
            }
        }
Пример #3
0
        public IActionResult Add([FromBody] Fault model)
        {
            try
            {
                if (model == null)
                {
                    return(NoContent());
                }

                using (var db = new AllInOneContext.AllInOneContext())
                {
                    db.Set <Fault>().Add(model);
                    db.SaveChanges();
                    //
                    PushFault(model);
                    //
                    return(Created("", "OK"));
                }
            }
            catch (DbUpdateException dbEx)
            {
                return(BadRequest(new ApplicationException {
                    ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                }));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Пример #4
0
 /// <summary>
 /// 手动移除实体中的List属性
 /// </summary>
 /// <param name="db"></param>
 /// <param name="shedule"></param>
 private static void UpdateTimePeriod(AllInOneContext.AllInOneContext db, Schedule shedule, DutyCheckPackageTimePlan model)
 {
     foreach (DayPeriod dp in model.Schedule.ScheduleCycle.DayPeriods)
     {
         foreach (TimePeriod tp in dp.TimePeriods)
         {
             TimePeriod timePeriod = db.Set <TimePeriod>().FirstOrDefault(p => p.TimePeriodId.Equals(tp.TimePeriodId));
             if (timePeriod != null)
             {
                 timePeriod.ExtraJson = tp.ExtraJson;
                 db.Set <TimePeriod>().Update(timePeriod);
                 db.SaveChanges();
             }
         }
     }
 }
Пример #5
0
        public IActionResult Get(Guid id)
        {
            if (id == null || id == new Guid())
            {
                return(NoContent());
            }

            using (var db = new AllInOneContext.AllInOneContext())
            {
                Fault Fault = db.Set <Fault>()
                              .Include(t => t.CheckDutySite)
                              .Include(t => t.CheckMan)
                              .Include(t => t.DutyCheckOperation).ThenInclude(t => t.Attachments)
                              .Include(t => t.DutyOrganization)
                              .Include(t => t.FaultType)
                              .FirstOrDefault(p => p.FaultId.Equals(id));

                if (Fault == null)
                {
                    return(NoContent());
                }

                return(new ObjectResult(Fault));
            }
        }
Пример #6
0
 public IEnumerable <EncoderType> GetAllEncoderType()
 {
     using (var db = new AllInOneContext.AllInOneContext())
     {
         return(db.Set <EncoderType>().ToList());
     }
 }
Пример #7
0
 public IActionResult Update([FromBody] Encoder encoder)
 {
     try
     {
         if (encoder == null)
         {
             return(BadRequest());
         }
         using (var db = new AllInOneContext.AllInOneContext())
         {
             db.Encoder.Update(encoder);
             db.SaveChanges();
             //同时更新摄像机IP
             db.Set <Camera>().Include(t => t.IPDevice).Where(t => t.EncoderId.Equals(encoder.EncoderId)).
             ForEachAsync(f => f.IPDevice.EndPointsJson = encoder.DeviceInfo.EndPointsJson).Wait();
             db.SaveChanges();
             return(NoContent());
         }
     }
     catch (DbUpdateException dbEx)
     {
         _logger.LogError("修改编码器异常:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);
         return(BadRequest(new ApplicationException {
             ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
         }));
     }
     catch (System.Exception ex)
     {
         _logger.LogError("修改编码器异常:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
         return(BadRequest(new ApplicationException {
             ErrorCode = "Unknown", ErrorMessage = ex.Message
         }));
     }
 }
Пример #8
0
 public IActionResult Remove(Guid id)
 {
     using (var db = new AllInOneContext.AllInOneContext())
     {
         using (var transaction = db.Database.BeginTransaction())
         {
             try
             {
                 MonitorySite ms = db.MonitorySite.FirstOrDefault(t => t.MonitorySiteId.Equals(id));
                 if (ms == null)
                 {
                     return(NotFound());
                 }
                 Camera       camera       = db.Set <Camera>().First(t => t.CameraId.Equals(ms.CameraId));
                 IPDeviceInfo cameraDevice = db.IPDeviceInfo.First(t => t.IPDeviceInfoId.Equals(camera.IPDeviceId));
                 db.MonitorySite.Remove(ms);
                 db.Set <Camera>().Remove(camera);
                 //db.IPDeviceInfo.Remove(cameraDevice);
                 var deleteStatusId = Guid.Parse("a0002016-e009-b019-e001-abcd13800005");
                 cameraDevice.StatusId = deleteStatusId;
                 //Remove AlarmSetting
                 List <Guid> alarmSourceIds = new List <Guid>();
                 alarmSourceIds.Add(cameraDevice.IPDeviceInfoId);
                 AlarmSettingUtility.RemoveAlarmSetting(db, alarmSourceIds);
                 db.SaveChanges();
                 transaction.Commit();
                 //推送到dcp,数据同步。。。。。。
                 return(new NoContentResult());
             }
             catch (DbUpdateException dbEx)
             {
                 transaction.Rollback();
                 _logger.LogError("删除监控点异常:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);
                 return(BadRequest(new ApplicationException {
                     ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                 }));
             }
             catch (Exception ex)
             {
                 _logger.LogError("删除监控点异常:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
                 return(BadRequest(new ApplicationException {
                     ErrorCode = "Unknown", ErrorMessage = ex.Message
                 }));
             }
         }
     }
 }
        /// <summary>
        /// 解除明细表的关联
        /// </summary>
        /// <param name="db"></param>
        /// <param name="model"></param>
        private void RemoveDetails(AllInOneContext.AllInOneContext db, UnitDutyCheckSchedule model)
        {
            List <UnitDutyCheckScheduleDetail> delList = new List <UnitDutyCheckScheduleDetail>();

            if (model.UnitDutyCheckScheduleDetails != null)
            {
                foreach (UnitDutyCheckScheduleDetail detail in model.UnitDutyCheckScheduleDetails)
                {
                    UnitDutyCheckScheduleDetail del = db.Set <UnitDutyCheckScheduleDetail>().FirstOrDefault(p => p.UnitDutyCheckScheduleDetailId.Equals(detail.UnitDutyCheckScheduleDetailId));
                    if (del != null)
                    {
                        delList.Add(del);
                    }
                }
            }
            db.Set <UnitDutyCheckScheduleDetail>().RemoveRange(delList);
            db.SaveChanges();
        }
Пример #10
0
 private static void RemoveLinkage(AllInOneContext.AllInOneContext db, DutyCheckGroup group)
 {
     //手动移除级联属性
     if (group.CheckDutySiteSchedules != null)
     {
         List <DutyCheckSiteSchedule> delList = new List <DutyCheckSiteSchedule>();
         foreach (DutyCheckSiteSchedule rp in group.CheckDutySiteSchedules)
         {
             DutyCheckSiteSchedule del = db.Set <DutyCheckSiteSchedule>()
                                         .FirstOrDefault(p => p.CheckDutySiteId.Equals(rp.CheckDutySiteId) && p.CheckManId.Equals(rp.CheckManId));
             if (del != null)
             {
                 delList.Add(del);
             }
         }
         db.Set <DutyCheckSiteSchedule>().RemoveRange(delList);
         db.SaveChanges();
     }
 }
Пример #11
0
        /// <summary>
        /// 手动移除实体中的List属性
        /// </summary>
        /// <param name="db"></param>
        /// <param name="shedule"></param>
        private static void RemoveList(AllInOneContext.AllInOneContext db, Schedule shedule)
        {
            List <DayPeriod>  removeDay  = new List <DayPeriod>();
            List <TimePeriod> removeTime = new List <TimePeriod>();

            foreach (DayPeriod tp in shedule.ScheduleCycle.DayPeriods)
            {
                DayPeriod dayPeriod = db.Set <DayPeriod>().Include(t => t.TimePeriods).FirstOrDefault(p => p.DayPeriodId.Equals(tp.DayPeriodId));
                if (dayPeriod != null)
                {
                    removeDay.Add(dayPeriod);
                    removeTime.AddRange(tp.TimePeriods);
                }
            }
            if (removeTime.Count > 0)
            {
                db.Set <TimePeriod>().RemoveRange(removeTime);
                db.Set <DayPeriod>().RemoveRange(removeDay);
                db.SaveChanges();
            }
        }
Пример #12
0
        private void UpdateSchedule(DutyCheckPackageTimePlan model, AllInOneContext.AllInOneContext db, DutyCheckPackageTimePlan oldPlan)
        {
            if (model.Schedule == null)
            {
                return;
            }
            Guid scheduleId = oldPlan.ScheduleId;

            if (oldPlan.ScheduleId != model.ScheduleId)
            {
                scheduleId = model.ScheduleId;
            }

            //转换一般数据
            Schedule shedule = db.Schedule
                               .Include(t => t.ScheduleType)
                               .Include(t => t.ScheduleCycle).ThenInclude(t => t.DayPeriods)
                               .Include(t => t.ScheduleCycle).ThenInclude(t => t.CycleType)
                               .FirstOrDefault(p => p.ScheduleId.Equals(scheduleId));

            if (shedule == null)
            {
                return;
            }

            shedule.EffectiveTime  = model.Schedule.EffectiveTime;
            shedule.ExpirationTime = model.Schedule.ExpirationTime;
            shedule.ScheduleTypeId = model.Schedule.ScheduleTypeId;
            shedule.ScheduleName   = model.Schedule.ScheduleName;
            //
            ScheduleCycle scheduleCycle = db.Set <ScheduleCycle>()
                                          .Include(t => t.DayPeriods)
                                          .FirstOrDefault(p => p.ScheduleCycleId.Equals(shedule.ScheduleCycle.ScheduleCycleId));

            //转换ScheduleCycle
            scheduleCycle.CycleTypeId = model.Schedule.ScheduleCycle.CycleTypeId;
            scheduleCycle.Days        = model.Schedule.ScheduleCycle.Days;
            scheduleCycle.DaysJson    = model.Schedule.ScheduleCycle.DaysJson;
            scheduleCycle.LastExecute = model.Schedule.ScheduleCycle.LastExecute;
            scheduleCycle.Months      = model.Schedule.ScheduleCycle.Months;
            scheduleCycle.MonthsJson  = model.Schedule.ScheduleCycle.MonthsJson;
            scheduleCycle.NextExecute = model.Schedule.ScheduleCycle.NextExecute;
            scheduleCycle.WeekDayJson = model.Schedule.ScheduleCycle.WeekDayJson;
            scheduleCycle.WeekDays    = model.Schedule.ScheduleCycle.WeekDays;
            //
            UpdateTimePeriod(db, shedule, model);
            //
            //scheduleCycle.DayPeriods = model.Schedule.ScheduleCycle.DayPeriods;
            shedule.ScheduleCycle = scheduleCycle;
            db.Schedule.Update(shedule);
            db.SaveChanges();
        }
Пример #13
0
 public IActionResult Update([FromBody] EncoderView encoder)
 {
     using (var db = new AllInOneContext.AllInOneContext())
     {
         try
         {
             if (encoder == null)
             {
                 return(BadRequest());
             }
             Encoder en = db.Encoder.Include(t => t.DeviceInfo).FirstOrDefault(t => t.EncoderId.Equals(encoder.EncoderId));
             if (en == null)
             {
                 return(NotFound());
             }
             if (encoder.EncoderType > 0)
             {
                 EncoderType ent = db.Set <EncoderType>().FirstOrDefault(t => t.EncoderCode == encoder.EncoderType);
                 if (ent == null)
                 {
                     return(BadRequest(new ApplicationException()
                     {
                         ErrorCode = "Unknown", ErrorMessage = "错误的编码器类型"
                     }));
                 }
                 en.EncoderTypeId = ent.EncoderTypeId;
             }
             if (encoder.EndPoints != null && encoder.EndPoints.Count > 0)
             {
                 en.DeviceInfo.EndPoints = encoder.EndPoints;
             }
             db.Encoder.Update(en);
             db.SaveChanges();
             return(Ok());
         }
         catch (DbUpdateException dbEx)
         {
             _logger.LogError("修改编码器异常:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);
             return(BadRequest(new ApplicationException {
                 ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
             }));
         }
         catch (System.Exception ex)
         {
             _logger.LogError("修改编码器异常:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
             return(BadRequest(new ApplicationException {
                 ErrorCode = "Unknown", ErrorMessage = ex.Message
             }));
         }
     }
 }
Пример #14
0
        private static void RemoveLinkage(AllInOneContext.AllInOneContext db, DutySchedule dutySchedule)
        {
            foreach (DutyScheduleDetail dsd in dutySchedule.DutyScheduleDetails)
            {
                if (dsd.NetWatcherSchedule != null)
                {
                    List <DutyCheckSchedule> delList = new List <DutyCheckSchedule>();
                    foreach (DutyCheckSchedule rp in dsd.NetWatcherSchedule)
                    {
                        DutyCheckSchedule del = db.Set <DutyCheckSchedule>()
                                                .FirstOrDefault(p => p.DutyCheckScheduleId.Equals(rp.DutyCheckScheduleId));
                        if (del != null)
                        {
                            delList.Add(del);
                        }
                    }
                    db.Set <DutyCheckSchedule>().RemoveRange(delList);
                    db.SaveChanges();
                }
            }


            if (dutySchedule.DutyScheduleDetails != null)
            {
                List <DutyScheduleDetail> delList = new List <DutyScheduleDetail>();
                foreach (DutyScheduleDetail detail in dutySchedule.DutyScheduleDetails)
                {
                    DutyScheduleDetail del = db.Set <DutyScheduleDetail>().FirstOrDefault(p => p.DutyScheduleDetailId.Equals(detail.DutyScheduleDetailId));
                    if (del != null)
                    {
                        delList.Add(del);
                    }
                }
                db.Set <DutyScheduleDetail>().RemoveRange(delList);
                db.SaveChanges();
            }
        }
Пример #15
0
        private List <MonitorySite> GetAllMonitorysite(AllInOneContext.AllInOneContext dbContext)
        {
            var cameras = dbContext.Set <Camera>().Include(t => t.Encoder).ThenInclude(t => t.EncoderType).
                          Include(t => t.Encoder).ThenInclude(t => t.DeviceInfo).ThenInclude(t => t.Organization).
                          Include(t => t.VideoForward).ThenInclude(t => t.ServerInfo).Include(t => t.IPDevice).ThenInclude(t => t.DeviceType).
                          ToList();

            var monitorysites = dbContext.MonitorySite.Include(t => t.Organization).OrderBy(t => t.OrderNo).ThenBy(t => t.MonitorySiteName).ToList();

            monitorysites.ForEach(t =>
            {
                t.Camera = cameras.FirstOrDefault(c => c.CameraId.Equals(t.CameraId));
            });
            return(monitorysites);
        }
Пример #16
0
        static void InitData()
        {
            using (AllInOneContext db = new AllInOneContext())
            {
                if (db.SystemOption.Count() > 0)
                {
                    return;
                }
                var sentinelChannelMappings = DataCache.InitSentinelChannelOption();
                var er = DataCache._SystemOptions.GroupBy(t => t.SystemOptionId).Where(t => t.ToList().Count > 1).Select(t => t.Key).ToList();
                db.SystemOption.AddRange(DataCache._SystemOptions);
                db.Set <EncoderType>().AddRange(DataCache._EncoderTypes);
                db.Organization.AddRange(DataCache._Organizations);
                db.ApplicationSetting.AddRange(DataCache._ApplicationSettings);
                db.Application.AddRange(DataCache._Applications);
                db.User.AddRange(DataCache._Users);

                db.SaveChanges();

                AddStandarTemplateLayout(2, 2, Guid.Parse("A0002016-E009-B019-E001-ABCD11500001"));
                AddStandarTemplateLayout(3, 3, Guid.Parse("A0002016-E009-B019-E001-ABCD11500001"));
                AddStandarTemplateLayout(4, 4, Guid.Parse("A0002016-E009-B019-E001-ABCD11500001"));
                AddStandarTemplateLayout(1, 1, Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                AddStandarTemplateLayout(2, 2, Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                AddStandarTemplateLayout(3, 3, Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                AddStandarTemplateLayout(4, 4, Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                AddStandarTemplateLayout(5, 5, Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                AddStandarTemplateLayout(6, 6, Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                Add4and9RealTemplateLayout(Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                Add1and12RealTemplateLayout(Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                Add1and1and10RealTemplateLayout(Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                Add1and7RealTemplateLayout(Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                Add2and8RealTemplateLayout(Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));
                Add5and1TemplateLayout(Guid.Parse("A0002016-E009-B019-E001-ABCD11500002"));

                AddSentinelDeviceAlarmTypeMapping();
                AddDefneceDeviceAlarmTypeMapping();
                AddCameraAlarmTypeMapping();
                AddQiangzhiligangAlarmTypeMapping();
                db.SaveChanges();

                db.DeviceChannelTypeMapping.AddRange(sentinelChannelMappings);
                db.SaveChanges();
            }
        }
Пример #17
0
        public IActionResult GetFaultByParameter(DateTime startTime, DateTime endTime, int currentPage,
                                                 int pageSize, Guid?[] faultTypeId, Guid?[] checkDutySiteId, Guid?dutyOrganizationId)
        {
            try
            {
                using (var db = new AllInOneContext.AllInOneContext())
                {
                    var Query = from p in db.Set <Fault>()
                                .Include(t => t.CheckDutySite)
                                .Include(t => t.CheckMan)
                                .Include(t => t.DutyCheckOperation).ThenInclude(t => t.Attachments)
                                .Include(t => t.DutyOrganization)
                                .Include(t => t.FaultType)
                                orderby p.CircularTime descending
                                where p.CircularTime >= startTime && p.CircularTime <= endTime &&
                                ((faultTypeId == null || faultTypeId.Length == 0) || faultTypeId.Contains(p.FaultTypeId)) &&
                                ((checkDutySiteId == null || checkDutySiteId.Length == 0) || checkDutySiteId.Contains(p.CheckDutySiteId)) &&
                                ((dutyOrganizationId == null) || p.DutyOrganizationId.Equals(dutyOrganizationId))
                                select p;
                    if (currentPage == 0)
                    {
                        currentPage = 1;
                    }
                    if (pageSize <= 0)
                    {
                        pageSize = 10;
                    }

                    var data = Query.Skip(pageSize * (currentPage - 1)).Take(pageSize * currentPage).ToList();

                    if (data.ToList().Count == 0)
                    {
                        return(NoContent());
                    }
                    return(new ObjectResult(data.ToList()));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new ApplicationException {
                    ErrorCode = "Unknown", ErrorMessage = ex.Message
                }));
            }
        }
Пример #18
0
        public IActionResult Add([FromBody] Schedule model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest());
                }
                using (var db = new AllInOneContext.AllInOneContext())
                {
                    if (model.ScheduleCycle != null)
                    {
                        //补全数据
                        SystemOption cycletype = db.Set <SystemOption>()
                                                 .FirstOrDefault(p => p.SystemOptionId.Equals(model.ScheduleCycle.CycleTypeId));
                        Schedule Schedule = model;
                        if (cycletype != null)
                        {
                            Schedule.ScheduleCycle.CycleType = cycletype;
                        }
                        DateTime?executeTime = ScheduleUtility.GetExecuteTime(Schedule, DateTime.Now);
                        model.ScheduleCycle.NextExecute = executeTime;
                    }
                    db.Schedule.Add(model);
                    db.SaveChanges();
                    return(Created("", "OK"));
                }
            }
            catch (DbUpdateException dbEx)
            {
                _logger.LogError("Add:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);

                return(BadRequest(new ApplicationException {
                    ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                }));
            }
            catch (System.Exception ex)
            {
                _logger.LogError("Add:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
                return(BadRequest(new ApplicationException {
                    ErrorCode = "Unknown", ErrorMessage = ex.Message
                }));
            }
        }
Пример #19
0
 public IActionResult Delete(Guid id)
 {
     using (var db = new AllInOneContext.AllInOneContext())
     {
         using (var tran = db.Database.BeginTransaction())
         {
             try
             {
                 Staff data = db.Staff.Include(t => t.Fingerprints).FirstOrDefault(p => p.StaffId == id);
                 if (data == null)
                 {
                     return(NoContent());
                 }
                 if (data.Fingerprints != null)
                 {
                     //删除人员已下发的指纹
                     foreach (var fp in data.Fingerprints)
                     {
                         DeleteFingerDispatch(fp, db);
                         db.Set <Fingerprint>().Remove(fp);
                     }
                 }
                 db.Staff.Remove(data);
                 db.SaveChanges();
                 tran.Commit();
                 return(new NoContentResult());
             }
             catch (DbUpdateException dbEx)
             {
                 tran.Rollback();
                 return(BadRequest(new ApplicationException {
                     ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                 }));
             }
             catch (System.Exception ex)
             {
                 return(BadRequest(new ApplicationException {
                     ErrorCode = "Unknown", ErrorMessage = ex.Message
                 }));
             }
         }
     }
 }
Пример #20
0
        /// <summary>
        /// 推送故障至下级
        /// </summary>
        /// <param name="Fault"></param>
        public bool PushFault(Fault model)
        {
            if (model == null)
            {
                return(false);
            }
            using (var db = new AllInOneContext.AllInOneContext())
            {
                Fault Fault = db.Set <Fault>()
                              .Include(t => t.CheckDutySite)
                              .Include(t => t.CheckMan)
                              .Include(t => t.DutyCheckOperation).ThenInclude(t => t.Attachments)
                              .Include(t => t.DutyOrganization)
                              .Include(t => t.FaultType)
                              .FirstOrDefault(p => p.FaultId.Equals(model.FaultId));
                if (Fault == null)
                {
                    return(false);
                }
                //查找监控点所在的组织机构
                Organization org = db.Organization
                                   .Include(t => t.Center)
                                   .FirstOrDefault(p => p.OrganizationId.Equals(Fault.CheckDutySite.Organization.ParentOrganizationId));
                if (org == null || org.Center == null || org.Center.EndPoints == null || org.Center.EndPoints.Count == 0)
                {
                    return(false);
                }


                string url = string.Format("http://{0}:{1}/Paps/Fault/Broadcast", org.Center.EndPoints[0].IPAddress, org.Center.EndPoints[0].Port);

                var ret = HttpClientHelper.Post(Fault, url);

                return(ret.Success);
            }
        }
Пример #21
0
        public static void Update20161214()
        {
            //防区名称调整
            using (var db = new AllInOneContext())
            {
                var left1 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("13900001"));
                left1.SystemOptionName = "左防区";

                var right = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("13900002"));
                right.SystemOptionName = "右防区";


                var alarmMappings = db.Set <DeviceAlarmMapping>().ToList();
                db.Set <DeviceAlarmMapping>().RemoveRange(alarmMappings);
                db.SaveChanges();

                var alarm1 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("2008"));
                if (alarm1 != null)
                {
                    db.SystemOption.Remove(alarm1);
                }
                var alarm2 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("2010"));
                if (alarm2 != null)
                {
                    db.SystemOption.Remove(alarm2);
                }
                var alarm3 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("2012"));
                if (alarm3 != null)
                {
                    db.SystemOption.Remove(alarm3);
                }

                var at1 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("2007"));
                at1.SystemOptionName = "红外";

                var at2 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("2007"));
                at2.SystemOptionName = "高压";

                var at3 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("2007"));
                at3.SystemOptionName = "栅栏";
                db.SaveChanges();

                //设备类型
                var dt1 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("1100001101"));
                dt1.SystemOptionName = "红外";
                var dt2 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("1100001102"));
                dt2.SystemOptionName = "高压";
                var dt3 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("1100001103"));
                dt3.SystemOptionName = "栅栏";
                db.SaveChanges();

                var dt4 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("1100001104"));
                if (dt4 != null)
                {
                    db.SystemOption.Remove(dt4);
                }
                var dt5 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("1100001105"));
                if (dt5 != null)
                {
                    db.SystemOption.Remove(dt5);
                }
                var dt6 = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("1100001106"));
                if (dt6 != null)
                {
                    db.SystemOption.Remove(dt6);
                }
                db.SaveChanges();
                AddSentinelDeviceAlarmTypeMapping();
                AddQiangzhiligangAlarmTypeMapping();
                AddCameraAlarmTypeMapping();

                var deleteStatus = db.SystemOption.FirstOrDefault(t => t.SystemOptionCode.Equals("13800005"));
                if (deleteStatus == null)
                {
                    deleteStatus = new Infrastructure.Model.SystemOption()
                    {
                        Predefine            = true,
                        ParentSystemOptionId = Guid.Parse("a0002016-e009-b019-e001-abcdef000138"),
                        SystemOptionId       = Guid.Parse("a0002016-e009-b019-e001-abcd13800005"),
                        SystemOptionCode     = "13800005",
                        SystemOptionName     = "已删除",
                    };
                    db.SystemOption.Add(deleteStatus);
                    db.SaveChanges();
                }
            }
        }
Пример #22
0
        public IActionResult Update([FromBody] Staff model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest());
                }
                using (var db = new AllInOneContext.AllInOneContext())
                {
                    ////同一个组织机构下人员编号不能重复
                    //var Staff = db.Staff
                    //          .FirstOrDefault(p => p.OrganizationId.Equals(model.OrganizationId)
                    //          && p.StaffCode.Equals(model.StaffCode)
                    //          && !p.StaffId.Equals(model.StaffId));
                    //if (Staff != null)
                    //{
                    //    return BadRequest(new ApplicationException { ErrorCode = "Staff-001", ErrorMessage = "同一个组织机构下人员编号不能重复" });
                    //}

                    using (var tran = db.Database.BeginTransaction())
                    {
                        var copyStaff = db.Staff.Include(t => t.Photo).FirstOrDefault(t => t.StaffId.Equals(model.StaffId));
                        try
                        {
                            if (model.Photo != null)//Entity Framework的默认值BUG暂时有BUG,临时这样处理
                            {
                                model.Photo.Modified = DateTime.Now;
                            }
                            //避免指令数据丢失,将更新的数据拷贝
                            copyStaff.OrganizationId      = model.OrganizationId;
                            copyStaff.PositionTypeId      = model.PositionTypeId;
                            copyStaff.RankTypeId          = model.RankTypeId;
                            copyStaff.SexId               = model.SexId;
                            copyStaff.StaffName           = model.StaffName;
                            copyStaff.StaffCode           = model.StaffCode;
                            copyStaff.ClassRow            = model.ClassRow;
                            copyStaff.DateOfBirth         = model.DateOfBirth;
                            copyStaff.DegreeOfEducationId = model.DegreeOfEducationId;
                            copyStaff.Description         = model.Description;
                            copyStaff.DutyCheckTypeId     = model.DutyCheckTypeId;
                            copyStaff.EnrolAddress        = model.EnrolAddress;
                            copyStaff.EnrolTime           = model.EnrolTime;
                            copyStaff.FamilyPhone         = model.FamilyPhone;
                            copyStaff.MaritalStatusId     = model.MaritalStatusId;
                            copyStaff.NationId            = model.NationId;
                            copyStaff.NativePlace         = model.NativePlace;
                            copyStaff.PartyTime           = model.PartyTime;
                            copyStaff.Phone               = model.Phone;
                            copyStaff.Stature             = model.Stature;

                            if (model.Photo != null)
                            {
                                if (copyStaff.Photo != null)
                                {
                                    db.Set <UserPhoto>().Remove(copyStaff.Photo);
                                    db.SaveChanges();
                                }
                                copyStaff.PhotoId = model.PhotoId;
                                copyStaff.Photo   = model.Photo;
                            }
                            copyStaff.PhysiclalStatusId    = model.PhysiclalStatusId;
                            copyStaff.PoliticalLandscapeId = model.PoliticalLandscapeId;
                            copyStaff.PositionTypeId       = model.PositionTypeId;
                            copyStaff.PostalZipCode        = model.PostalZipCode;
                            copyStaff.RankTypeId           = model.RankTypeId;
                            copyStaff.ReignStatusId        = model.ReignStatusId;
                            copyStaff.ReligiousBelief      = model.ReligiousBelief;
                            copyStaff.WorkingPropertyId    = model.WorkingPropertyId;

                            db.Staff.Update(copyStaff);
                            db.SaveChanges();
                            tran.Commit();
                            return(new NoContentResult());
                        }
                        catch (DbUpdateException dbEx)
                        {
                            tran.Rollback();
                            return(BadRequest(new ApplicationException {
                                ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                            }));
                        }
                    }
                }
            }
            catch (DbUpdateException dbEx)
            {
                _logger.LogError("Update:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);

                return(BadRequest(new ApplicationException {
                    ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                }));
            }
            catch (System.Exception ex)
            {
                _logger.LogError("Update:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
                return(BadRequest(new ApplicationException {
                    ErrorCode = "Unknown", ErrorMessage = ex.Message
                }));
            }
        }
Пример #23
0
        private static void RemoveLinkage(AllInOneContext.AllInOneContext db, DutyGroupSchedule dutyGroupSchedule)
        {
            //删除未进行的查勤记录
            var dellog = db.DutyCheckLog
                         .Where(p => p.PlanDate >= dutyGroupSchedule.StartDate &&
                                p.PlanDate <= dutyGroupSchedule.EndDate &&
                                p.StatusId == new Guid("361ADFE9-E58A-4C88-B191-B742CC212443"));

            if (dellog != null && dellog.Count() != 0)
            {
                db.DutyCheckLog.RemoveRange(dellog.ToList());
                db.SaveChanges();
            }

            List <DutyGroupScheduleDetail> mainList = new List <DutyGroupScheduleDetail>();

            if (dutyGroupSchedule.DutyGroupScheduleDetails != null)
            {
                List <DutyCheckSiteSchedule> dutyCheckSiteSchedulelList = new List <DutyCheckSiteSchedule>();
                foreach (DutyGroupScheduleDetail detail in dutyGroupSchedule.DutyGroupScheduleDetails)
                {
                    // 解除DutyCheckSiteSchedule Many To Many
                    if (detail.CheckDutySiteSchedule != null)
                    {
                        foreach (DutyCheckSiteSchedule rp in detail.CheckDutySiteSchedule)
                        {
                            DutyCheckSiteSchedule del = db.Set <DutyCheckSiteSchedule>()
                                                        .FirstOrDefault(p => p.DutyCheckSiteScheduleId.Equals(rp.DutyCheckSiteScheduleId));
                            if (del != null)
                            {
                                dutyCheckSiteSchedulelList.Add(del);
                            }
                        }
                    }
                }
                db.Set <DutyCheckSiteSchedule>().RemoveRange(dutyCheckSiteSchedulelList);
                db.SaveChanges();

                // DutyGroupScheduleDetail Many To Many
                List <DutyGroupScheduleDetail> detailList = new List <DutyGroupScheduleDetail>();
                foreach (DutyGroupScheduleDetail detail in dutyGroupSchedule.DutyGroupScheduleDetails)
                {
                    DutyGroupScheduleDetail del = db.Set <DutyGroupScheduleDetail>()
                                                  .FirstOrDefault(p => p.DutyGroupScheduleDetailId.Equals(detail.DutyGroupScheduleDetailId));
                    if (del != null)
                    {
                        detailList.Add(del);
                    }
                }
                db.Set <DutyGroupScheduleDetail>().RemoveRange(detailList);
                db.SaveChanges();
            }



            // 解除EmergencyTeam Many To Many
            if (dutyGroupSchedule.EmergencyTeam != null)
            {
                List <EmergencyTeam> delList = new List <EmergencyTeam>();
                foreach (EmergencyTeam rp in dutyGroupSchedule.EmergencyTeam)
                {
                    EmergencyTeam del = db.Set <EmergencyTeam>()
                                        .FirstOrDefault(p => p.DutyGroupScheduleId.Equals(rp.DutyGroupScheduleId) && p.StaffId.Equals(rp.StaffId));
                    if (del != null)
                    {
                        delList.Add(del);
                    }
                }
                db.Set <EmergencyTeam>().RemoveRange(delList);
                db.SaveChanges();
            }

            // 解除Reservegroup Many To Many
            if (dutyGroupSchedule.Reservegroup != null)
            {
                List <Reservegroup> delList = new List <Reservegroup>();
                foreach (Reservegroup rp in dutyGroupSchedule.Reservegroup)
                {
                    Reservegroup del = db.Set <Reservegroup>()
                                       .FirstOrDefault(p => p.DutyGroupScheduleId.Equals(rp.DutyGroupScheduleId) && p.StaffId.Equals(rp.StaffId));
                    if (del != null)
                    {
                        delList.Add(del);
                    }
                }
                db.Set <Reservegroup>().RemoveRange(delList);
                db.SaveChanges();
            }
        }
Пример #24
0
        public IActionResult Update([FromBody] Schedule model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest());
                }
                using (var db = new AllInOneContext.AllInOneContext())
                {
                    using (var tran = db.Database.BeginTransaction())
                    {
                        if (model.ScheduleCycle != null)
                        {
                            //补全数据
                            SystemOption cycletype = db.Set <SystemOption>()
                                                     .FirstOrDefault(p => p.SystemOptionId.Equals(model.ScheduleCycle.CycleTypeId));
                            Schedule Schedule = model;
                            if (cycletype != null)
                            {
                                Schedule.ScheduleCycle.CycleType = cycletype;
                            }
                            DateTime?executeTime = ScheduleUtility.GetExecuteTime(Schedule, DateTime.Now);
                            model.ScheduleCycle.NextExecute = executeTime;
                        }
                        //转换一般数据
                        Schedule shedule = db.Schedule
                                           .Include(t => t.ScheduleType)
                                           .Include(t => t.ScheduleCycle).ThenInclude(t => t.DayPeriods)
                                           .Include(t => t.ScheduleCycle).ThenInclude(t => t.CycleType)
                                           .FirstOrDefault(p => p.ScheduleId.Equals(model.ScheduleId));

                        if (shedule == null)
                        {
                            return(BadRequest());
                        }

                        shedule.EffectiveTime  = model.EffectiveTime;
                        shedule.ExpirationTime = model.ExpirationTime;
                        shedule.ScheduleTypeId = model.ScheduleTypeId;
                        shedule.ScheduleName   = model.ScheduleName;
                        //
                        ScheduleCycle scheduleCycle = db.Set <ScheduleCycle>()
                                                      .Include(t => t.DayPeriods)
                                                      .FirstOrDefault(p => p.ScheduleCycleId.Equals(shedule.ScheduleCycle.ScheduleCycleId));
                        //转换ScheduleCycle
                        scheduleCycle.CycleTypeId = model.ScheduleCycle.CycleTypeId;
                        scheduleCycle.Days        = model.ScheduleCycle.Days;
                        scheduleCycle.DaysJson    = model.ScheduleCycle.DaysJson;
                        scheduleCycle.LastExecute = model.ScheduleCycle.LastExecute;
                        scheduleCycle.Months      = model.ScheduleCycle.Months;
                        scheduleCycle.MonthsJson  = model.ScheduleCycle.MonthsJson;
                        scheduleCycle.NextExecute = model.ScheduleCycle.NextExecute;
                        scheduleCycle.WeekDayJson = model.ScheduleCycle.WeekDayJson;
                        scheduleCycle.WeekDays    = model.ScheduleCycle.WeekDays;
                        //
                        RemoveList(db, shedule);
                        //
                        scheduleCycle.DayPeriods = model.ScheduleCycle.DayPeriods;
                        shedule.ScheduleCycle    = scheduleCycle;
                        db.Schedule.Update(shedule);
                        db.SaveChanges();
                        //
                        tran.Commit();
                        return(new NoContentResult());
                    }
                }
            }
            catch (DbUpdateException dbEx)
            {
                _logger.LogError("Update:Message:{0}\r\n,StackTrace:{1}", dbEx.Message, dbEx.StackTrace);

                return(BadRequest(new ApplicationException {
                    ErrorCode = "DBUpdate", ErrorMessage = "数据保存异常:" + dbEx.Message
                }));
            }
            catch (System.Exception ex)
            {
                _logger.LogError("Update:Message:{0}\r\n,StackTrace:{1}", ex.Message, ex.StackTrace);
                return(BadRequest(new ApplicationException {
                    ErrorCode = "Unknown", ErrorMessage = ex.Message
                }));
            }
        }