Ejemplo n.º 1
0
        public CResult <string> InsertMaintainRecord(WebMaintainRecord model)
        {
            LogHelper.Info(MethodBase.GetCurrentMethod().ToString());
            LogHelper.Info("model", model);

            if (string.IsNullOrEmpty(model.ProjectID))
            {
                return(new CResult <string>("", ErrorCode.ParameterError));
            }

            using (var context = new DeviceMgmtEntities())
            {
                if (context.Project.Any(t => t.IsValid && t.ID == model.ProjectID) == false)
                {
                    return(new CResult <string>("", ErrorCode.ProjectNotExist));
                }

                if (context.Device.Any(t => t.ID == model.DeviceID) == false)
                {
                    return(new CResult <string>("", ErrorCode.DeviceNotExist));
                }

                var entity = new MaintainRecord();
                entity.CreateDate   = DateTime.Now;
                entity.CreateUserID = model.CreateUserID;
                entity.ID           = Guid.NewGuid().ToString();
                entity.MaintainDate = model.MaintainDate;
                entity.IsValid      = true;
                entity.Note         = model.Note;
                entity.ProjectID    = model.ProjectID;
                entity.Operator     = model.Operator;
                entity.DeviceID     = model.DeviceID;

                context.MaintainRecord.Add(entity);

                foreach (var item in model.MaintainItems)
                {
                    var relation = new MaintainRecordMaintainItemRel()
                    {
                        MaintainRecordID = entity.ID,
                        MaintainItemID   = item.ID
                    };

                    context.MaintainRecordMaintainItemRel.Add(relation);
                }

                if (context.SaveChanges() > 0)
                {
                    return(new CResult <string>(entity.ID));
                }
                else
                {
                    return(new CResult <string>("", ErrorCode.SaveDbChangesFailed));
                }
            }
        }
Ejemplo n.º 2
0
        public CResult <string> UpdateMaintainRecord(WebMaintainRecord model, List <string> deleteFiles)
        {
            LogHelper.Info(MethodBase.GetCurrentMethod().ToString());
            LogHelper.Info("model", model);
            LogHelper.Info("deleteFiles", deleteFiles);

            if (string.IsNullOrEmpty(model.ID))
            {
                return(new CResult <string>("", ErrorCode.ParameterError));
            }

            using (var context = new DeviceMgmtEntities())
            {
                var entity = context.MaintainRecord.FirstOrDefault(t => t.ID == model.ID && t.IsValid);
                if (entity == null)
                {
                    return(new CResult <string>("", ErrorCode.DataNoExist));
                }

                entity.Note                 = model.Note;
                entity.Operator             = model.Operator;
                entity.MaintainDate         = model.MaintainDate;
                context.Entry(entity).State = EntityState.Modified;
                if (deleteFiles != null && deleteFiles.Count() > 0)
                {
                    var needDelete = context.Attachment.Where(t => deleteFiles.Contains(t.ID)).ToList();
                    foreach (var item in needDelete)
                    {
                        context.Attachment.Remove(item);
                        FileHelper.DelFile(item.FilePath);
                    }
                }

                var oldRelations = context.MaintainRecordMaintainItemRel.Where(t => t.MaintainRecordID == entity.ID);

                var oldRelationItemIDs = oldRelations.Select(t => t.MaintainItemID);
                var newRelationItemIDs = model.MaintainItems.Select(t => t.ID).ToList();

                var needDeletes = oldRelations.Where(t => newRelationItemIDs.Contains(t.MaintainItemID) == false).ToList();
                var needAdd     = model.MaintainItems.Where(t => oldRelationItemIDs.Contains(t.ID) == false).ToList();

                foreach (var item in needDeletes)
                {
                    context.MaintainRecordMaintainItemRel.Remove(item);
                }

                foreach (var item in needAdd)
                {
                    var relation = new MaintainRecordMaintainItemRel()
                    {
                        MaintainRecordID = entity.ID,
                        MaintainItemID   = item.ID
                    };

                    context.MaintainRecordMaintainItemRel.Add(relation);
                }

                if (context.SaveChanges() > 0)
                {
                    return(new CResult <string>(""));
                }
                else
                {
                    return(new CResult <string>("", ErrorCode.SaveDbChangesFailed));
                }
            }
        }