public void Update(ProjectModel entity) { var result = new ErrorCodeLib.Models.ResultModel(); _context.Entry(entity).State = EntityState.Modified; _context.Entry(entity).Property(a => a.created).IsModified = false; }
public ResultModel FindAll(Expression <Func <project_partnerModel, bool> > expression) { var result = new ErrorCodeLib.Models.ResultModel(); var data = _context.project_partner .Include(a => a.partner_) .Include(a => a.project_) .Where(expression) .AsNoTracking() //.Select(c => new //{ // id = c.project_id, // c.project_.name, // c.project_.budget, // c.project_.date_start, // c.project_.date_end, // c.project_.internal_HR, // c.project_.outsourcing_HR, // c.project_.remarks, // c.partner_id, // c.project_.status //}) .GroupBy(a => a.id) //.OrderBy(a=>a.id) //.OrderBy(a=>a.partner_id) .ToList(); result = ErrorCode.SUCCESS(data, "", "cht"); return(result); }
public ResultModel FindAll(Expression <Func <ExpenditureModel, bool> > expression) { var result = new ErrorCodeLib.Models.ResultModel(); var query = _context.expenditure .Include(a => a.project_) .Include(a => a.partner_) .Where(expression) .AsNoTracking() .Select(a => new { a.id, a.project_id, a.partner_id, a.partner_.organization_id, a.item_id, a.due_date, a.payment_date, overdue = new TimeSpan(Convert.ToDateTime(a.payment_date).Ticks - Convert.ToDateTime(a.due_date).Ticks).Days < 0 ? 0 : new TimeSpan(Convert.ToDateTime(a.payment_date).Ticks - Convert.ToDateTime(a.due_date).Ticks).Days, a.amount_payable, a.amount_paid, a.status }) .ToList(); var output = new { data = query, total = query.Count() }; result = ErrorCode.SUCCESS(output, "", "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 IQueryable <ProjectModel> ListProtoType(Expression <Func <ProjectModel, bool> > expression) { var output = new object(); var result = new ErrorCodeLib.Models.ResultModel(); var query = _context.project .Where(expression) .AsNoTracking() .AsQueryable(); return(query); }
public async Task <ErrorCodeLib.Models.ResultModel> Get([FromQuery] ProjectModelForQuery model) { var result = new ErrorCodeLib.Models.ResultModel(); if (model.partner_id != null) { var predicate = PredicateBuilder.True <project_partnerModel>(); predicate = predicate.And(a => a.partner_id == model.partner_id); if (model.partner_id != null) { predicate = predicate.And(a => a.partner_id == model.partner_id); } if (model.id != null) { predicate = predicate.And(a => a.project_id == model.id); } if (model.date_start != null) { predicate = predicate.And(a => a.project_.date_start >= model.date_start); } if (model.date_end != null) { predicate = predicate.And(a => a.project_.date_end <= model.date_end); } var query_result = _repo_project_partner.FindAll(predicate); if (query_result.Status != 200) { return(query_result); } result = query_result; } else { var predicate = PredicateBuilder.True <ProjectModel>(); if (model.id != null) { predicate = predicate.And(a => a.id == model.id); } if (model.date_start != null) { predicate = predicate.And(a => a.date_start >= model.date_start); } if (model.date_end != null) { predicate = predicate.And(a => a.date_end <= model.date_end); } var query_result = _repo_project.FindAll(predicate); if (query_result.Status != 200) { return(query_result); } result = query_result; } 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); }