public async Task <ErrorCodeLib.Models.ResultModel> PUT([FromBody] ExpenditureModel model) { var result = new ErrorCodeLib.Models.ResultModel(); if (model.id == null) { result = ErrorCode.PARAMETER_REQUIRED(new string[] { "id" }, "cht"); return(result); } //檢查expenditure var exist_expenditure = _repo_expenditure.FindById(Convert.ToInt32(model.id)); if (exist_expenditure == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "id", "cht"); return(result); } //檢查project var exist_project = _repo_project.FindById(Convert.ToInt32(model.project_id)); if (exist_project == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "project_id", "cht"); return(result); } //檢查partner var exist_partner = _repo_partner.FindById(Convert.ToInt32(model.partner_id)); if (exist_partner == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "partner_id", "cht"); return(result); } //檢查item var exist_item = _repo_item.FindById(Convert.ToInt32(model.item_id)); if (exist_item == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "item_id", "cht"); return(result); } model.updated = DateTime.Now; _repo_expenditure.Update(model); var exception_save = _unitOfWork.Save(); if (exception_save != null) { result = ErrorCode.CUSTOM_ERROR(exception_save.Message, "DB ERROR", 500, "cht"); } result = ErrorCode.SUCCESS(null, "修改成功", "cht"); return(result); }
public async Task <ErrorCodeLib.Models.ResultModel> Create([FromBody] ProjectModel model) { var result = new ErrorCodeLib.Models.ResultModel(); model.created = DateTime.Now; //檢查partner var exist_partner = new PartnerModel(); if (!string.IsNullOrEmpty(model.partner_id)) { string[] partner_id_arr = model.partner_id.Split(","); foreach (var i in partner_id_arr) { try { exist_partner = _repo_partner.FindById(Convert.ToInt32(i)); } catch (Exception e) { result = ErrorCode.PARAMETER_INVALID(null, "partner_id", "cht"); return(result); } if (exist_partner == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "partner_id", "cht"); return(result); } } } result = _repo_project.Create(model); return(result); }
public async Task <ErrorCodeLib.Models.ResultModel> POST([FromBody] ExpenditureModel model) { var result = new ErrorCodeLib.Models.ResultModel(); //檢查project var exist_project = _repo_project.FindById(Convert.ToInt32(model.project_id)); if (exist_project == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "project_id", "cht"); return(result); } //檢查partner var exist_partner = _repo_partner.FindById(Convert.ToInt32(model.partner_id)); if (exist_partner == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "partner_id", "cht"); return(result); } //檢查item var exist_item = _repo_item.FindById(Convert.ToInt32(model.item_id)); if (exist_item == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "item_id", "cht"); return(result); } model.created = DateTime.Now; _repo_expenditure.Create(model); var exception_save = _unitOfWork.Save(); if (exception_save != null) { result = ErrorCode.CUSTOM_ERROR(exception_save.Message, "DB ERROR", 500, "cht"); } var output = new { model.id }; result = ErrorCode.SUCCESS(null, "新增成功", "cht"); return(result); }
public async Task <ErrorCodeLib.Models.ResultModel> Put([FromBody] ProjectModel model) { var result = new ErrorCodeLib.Models.ResultModel(); //檢查project var existData = _repo_project.FindById(model.id); if (existData == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "id", "cht"); return(result); } //檢查partner var exist_partner = new PartnerModel(); if (!string.IsNullOrEmpty(model.partner_id)) { string[] partner_id_arr = model.partner_id.Split(","); foreach (var i in partner_id_arr) { try { exist_partner = _repo_partner.FindById(Convert.ToInt32(i)); } catch (Exception e) { result = ErrorCode.PARAMETER_INVALID(null, "partner_id", "cht"); return(result); } if (exist_partner == null) { result = ErrorCode.DB_ERROR_NOT_FOUND(null, "partner_id", "cht"); return(result); } } } model.updated = DateTime.Now; _repo_project.Update(model); if (!string.IsNullOrEmpty(model.partner_id)) { var exist_project_partner_list = _repo_project_partner.ListProtoType(a => a.project_id == model.id); string[] partner_id_arr = model.partner_id.Split(","); ////刪除不在partner_id array裡的 foreach (var k in exist_project_partner_list) { if (!Array.Exists(partner_id_arr, a => a == k.partner_id.ToString())) { _repo_project_partner.Delete(k); } } //增加exist_project_partner_list缺少的 foreach (var i in partner_id_arr) { bool isExist = false; foreach (var j in exist_project_partner_list) { if (j.partner_id.ToString() == i) { isExist = true; } } if (!isExist) { //新增合作廠商id (註) var project_partner_data = new project_partnerModel(); project_partner_data.created = DateTime.Now; project_partner_data.project_id = model.id; project_partner_data.partner_id = Convert.ToInt32(i); _repo_project_partner.Create(project_partner_data); } } } //最後存檔 var except = _unitOfWork.Save(); if (except != null) { result = ErrorCode.CUSTOM_ERROR(except.Message, "DB ERROR", 500, "cht"); return(result); } result = ErrorCode.SUCCESS(null, "修改成功", "cht"); return(result); }