public async Task <IActionResult> CreateV2([FromBody] QualityControlResultViewModel recordViewModel)
        {
            // Set date for CrateDate Entity
            if (recordViewModel == null)
            {
                return(BadRequest());
            }
            var record = this.mapper.Map <QualityControlResultViewModel, QualityControlResult>(recordViewModel);

            // +7 Hour
            record            = this.helper.AddHourMethod(record);
            record.CreateDate = DateTime.Now;
            // Check HasFail or Pass
            var HasFail = false;

            // Set ItemMainHasEmployees
            if (recordViewModel.QualityHasMasterLists != null)
            {
                foreach (var item in recordViewModel.QualityHasMasterLists)
                {
                    if (item == null)
                    {
                        continue;
                    }

                    var HasData = await this.repositoryRequireHasMaster.GetAsync(item.RequireHasMasterProjectId);

                    if (HasData != null)
                    {
                        HasData.PassQuantity = item.PassQuantity;
                        HasData.ModifyDate   = DateTime.Now;
                        HasData.Modifyer     = record.Creator;
                        //Update
                        HasFail = HasData.PassQuantity != HasData.Quantity;
                        await this.repositoryRequireHasMaster.UpdateAsync(HasData, HasData.RequireHasMasterProjectId);
                    }
                }
            }
            // Status
            record.QualityControlStatus = HasFail ? QualityControlStatus.Failed : QualityControlStatus.Approved;

            if (await this.repository.AddAsync(record) == null)
            {
                return(BadRequest());
            }
            // Update Require qualitycontrol
            await this.RequireQualityControlUpdate(record, !HasFail, record.Creator);

            if (record.RequireQualityControl != null)
            {
                record.RequireQualityControl = null;
            }

            return(new JsonResult(record, this.DefaultJsonSettings));
        }
Пример #2
0
        public async Task <IActionResult> UpdateV2(int key, [FromBody] QualityControlResultViewModel recordViewModel)
        {
            if (ModelState.IsValid)
            {
                if (key < 1)
                {
                    return(BadRequest());
                }
                if (recordViewModel == null)
                {
                    return(BadRequest());
                }

                var record = this.mapper.Map <QualityControlResultViewModel, QualityControlResult>(recordViewModel);
                // +7 Hour
                record = this.helper.AddHourMethod(record);
                if (recordViewModel.QualityControlResultTime.HasValue)
                {
                    record.QualityControlResultDate = new DateTime(record.QualityControlResultDate.Value.Year, record.QualityControlResultDate.Value.Month, record.QualityControlResultDate.Value.Day,
                                                                   recordViewModel.QualityControlResultTime.Value.Hour, recordViewModel.QualityControlResultTime.Value.Minute, 0);
                }

                var HasFail = false;
                // Set date for CrateDate Entity
                if (record.GetType().GetProperty("ModifyDate") != null)
                {
                    record.GetType().GetProperty("ModifyDate").SetValue(record, DateTime.Now);
                }
                if (await this.repository.UpdateAsync(record, key) == null)
                {
                    return(BadRequest());
                }
                else
                {
                    if (recordViewModel.QualityHasMasterLists != null)
                    {
                        foreach (var item in recordViewModel.QualityHasMasterLists)
                        {
                            if (item == null)
                            {
                                continue;
                            }

                            var HasData = await this.repositoryRequireHasMaster.GetAsync(item.RequireHasMasterProjectId);

                            if (HasData != null)
                            {
                                HasData.PassQuantity = item.PassQuantity;
                                HasData.ModifyDate   = DateTime.Now;
                                HasData.Modifyer     = record.Creator;
                                //Update
                                HasFail = HasData.PassQuantity != HasData.Quantity;
                                await this.repositoryRequireHasMaster.UpdateAsync(HasData, HasData.RequireHasMasterProjectId);
                            }
                        }

                        // Update Require qualitycontrol
                        await this.RequireQualityControlUpdate(record, !HasFail, record.Creator);

                        if (record.RequireQualityControl != null)
                        {
                            record.RequireQualityControl = null;
                        }
                    }
                }
                return(new JsonResult(record, this.DefaultJsonSettings));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }