using DeviceRepair.Api.Common; using DeviceRepair.Api.CustomAttribute; using DeviceRepair.DataAccess; using DeviceRepair.Models; using DeviceRepair.Models.Preserve; using NLog; using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Http; using System.Threading.Tasks; using System.Web.Http; namespace DeviceRepair.Api.Controllers { [RoutePrefix("Api/Form")] public class FormController : CFController { private static readonly Logger log = LogManager.GetCurrentClassLogger(); /// /// 点检表新增 /// /// [HttpPost] [Route("InsertSingle")] [HttpAuthorize] public APIResponseData InsertSingle(MaintenanceFormVersionInfo Item) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "操作失败!" }; try { if (Item == null) throw new Exception("操作失败,新增的点检表对象不能为空!"); base.GetParams(); return FormAccess.Instance.InsertSingle(Item, OperationInfo); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } /// /// 判断数据是否存在 /// /// /// [HttpPost] [Route("FormIsExists")] [HttpAuthorize] public APIResponseData FormDataIsExists(MaintenanceFormVersionInfo Item) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "操作失败!" }; try { if (Item == null) throw new Exception("操作失败,待检测的点检表对象不能为空!"); if (string.IsNullOrWhiteSpace(Item.FormName)) throw new Exception("操作失败,点检表的名称不能为空!"); if (string.IsNullOrWhiteSpace(Item.VersionCode)) throw new Exception("操作失败,点检表的文件编号不能为空!"); if (string.IsNullOrWhiteSpace(Item.VersionRev)) throw new Exception("操作失败,点检表的文件版本不能为空!"); return FormAccess.Instance.DataIsExists(Item); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } /// /// 上传文件 /// [HttpPost] [Route("Upload")] [HttpAuthorize] public async Task UploadFile() { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "上传失败!" }; try { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string root = Path.Combine(Utils.Config.Configurations.Properties.AttachmentDirectory, "FormVer"); if (!Directory.Exists(root)) Directory.CreateDirectory(root); var provider = new DoMultipartFormDataStreamProvider(root); await Request.Content.ReadAsMultipartAsync(provider); string FileName = ""; foreach (var file in provider.FileData) { FileName = file.LocalFileName; break; } apiResponseData.Code = 1; apiResponseData.Data = FileName; apiResponseData.Message = "上传成功"; } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } [HttpGet] [Route("GetSingle")] [HttpAuthorize] public APIResponseData GetSingle(int pk) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据" }; try { apiResponseData = FormAccess.Instance.GetSingle(pk); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } [HttpGet] [Route("GetQuery")] [HttpAuthorize] public APIResponseData GetQuery(string FilterString) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据" }; try { apiResponseData = FormAccess.Instance.GetQuery(FilterString); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } /// /// 修改点检表备注信息 /// /// /// [HttpPost] [Route("ChangeRemark")] [HttpAuthorize] public APIResponseData ChangeRemark(MaintenanceFormVersionInfo Item) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "操作失败!" }; try { base.GetParams(); apiResponseData = FormAccess.Instance.ChangeRemark(Item, OperationInfo); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } /// /// 单行数据翻转当前状态(启用/禁用) /// /// /// [HttpPost] [Route("ChangeStauts")] [HttpAuthorize] public APIResponseData ChangeStauts(int pk) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "操作失败!" }; try { base.GetParams(); apiResponseData = FormAccess.Instance.ChangeStauts(pk, OperationInfo); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } [HttpGet] [Route("GetDeviceInformationTreeView")] [HttpAuthorize] public APIResponseData GetDeviceInformationTreeView() { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "操作失败!" }; try { GetParams(); apiResponseData = FormAccess.Instance.GetDeviceInformationTreeView(OperationInfo.OperatorCode); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } /// /// 分配点检表到指定设备 /// /// /// [HttpPost] [Route("AssigningFormToDevices")] [HttpAuthorize] public APIResponseData AssigningFormToDevices(List Datas) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据" }; try { if (Datas == null || Datas.Count == 0) return apiResponseData; base.GetParams(); apiResponseData = FormAccess.Instance.AssigningFormToDevices(Datas, OperationInfo); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; } return apiResponseData; } #region AM /// /// 获取AM的点检表列表 /// /// [HttpPost, Route("AMFormList"), HttpAuthorize] public APIResponseData AMFormList(MaintenanceFormFilter filter) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据" }; try { apiResponseData = FormAccess.Instance.GetQuery(filter); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; apiResponseData.Data = null; } return apiResponseData; } /// /// 修改点检表状态 /// /// /// [HttpPost, Route("StatusChange"), HttpAuthorize] public APIResponseData StatusChange(MaintenanceFormFilter filter) { APIResponseData apiResponseData = new APIResponseData { Code = -1, Message = "未能获取到数据" }; try { apiResponseData = FormAccess.Instance.StatusChange(filter); } catch (Exception ex) { log.Error(ex); apiResponseData.Code = -1; apiResponseData.Message = ex.Message; apiResponseData.Data = null; } return apiResponseData; } #endregion } }