Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }