public TrainingMasterView(int id)
        {
            InitializeComponent();
            MessagingCenter.Subscribe <ViewModelCommonUtil>(this, ViewModelConst.MessagingTrainingSelfScroll,
                                                            (sender) => { ControlScroll.ScrollToAsync(ControlScroll, ScrollToPosition.Start, false); });
            NavigationPage.SetHasNavigationBar(this, false);
            var vm = new TrainingMasterViewModel(id: id, partStack: PartStack, loadStack: LoadStack)
            {
                ErrorStack = ErrorStack.Children
            };

            BindingContext = vm;
        }
示例#2
0
        public IActionResult Post([FromBody] TrainingMasterViewModel nTrainingMaster)
        {
            if (nTrainingMaster.TrainingDate != null)
            {
                var             tempDate = nTrainingMaster.TrainingDate.Value;
                System.TimeSpan time     = System.TimeSpan.Parse(nTrainingMaster.TrainingDateTime);
                nTrainingMaster.TrainingDate = new System.DateTime(tempDate.Year, tempDate.Month, tempDate.Day, time.Hours, time.Minutes, 0);
            }

            if (nTrainingMaster.TrainingDateEnd != null)
            {
                var             tempDate = nTrainingMaster.TrainingDateEnd.Value;
                System.TimeSpan time     = System.TimeSpan.Parse(nTrainingMaster.TrainingDateEndTime);
                nTrainingMaster.TrainingDateEnd = new System.DateTime(tempDate.Year, tempDate.Month, tempDate.Day, time.Hours, time.Minutes, 0);
            }

            nTrainingMaster.CreateDate = DateTime.Now;
            nTrainingMaster.Creator    = nTrainingMaster.Creator ?? "Someone";

            var course = this.repositoryCousre.Get(nTrainingMaster.TrainingCousreId.Value);

            if (nTrainingMaster.TblTrainingDetail != null)
            {
                foreach (var detail in nTrainingMaster.TblTrainingDetail)
                {
                    detail.MinScore   = course.MinimunScore;
                    detail.CreateDate = nTrainingMaster.CreateDate;
                    detail.Creator    = nTrainingMaster.Creator;
                    if (detail.Score != null)
                    {
                        detail.StatusForTraining = (byte)(detail.Score >= detail.MinScore ? 1 : 2);
                    }
                }
            }

            if (nTrainingMaster.PlaceId.HasValue)
            {
                nTrainingMaster.TblTrainingMasterHasPlace.Add(new TblTrainingMasterHasPlace()
                {
                    CreateDate = nTrainingMaster.CreateDate,
                    Creator    = nTrainingMaster.Creator ?? "Someone",
                    PlaceId    = nTrainingMaster.PlaceId.Value,
                });
            }

            return(new JsonResult(
                       this.repository.AddAsync(this.mapper.Map <TrainingMasterViewModel, TblTrainingMaster>(nTrainingMaster)).Result,
                       this.DefaultJsonSettings));
        }
示例#3
0
        public IActionResult Put(int id, [FromBody] TrainingMasterViewModel uTrainingMaster)
        {
            if (uTrainingMaster.TrainingDate != null)
            {
                var             tempDate = uTrainingMaster.TrainingDate.Value;
                System.TimeSpan time     = System.TimeSpan.Parse(uTrainingMaster.TrainingDateTime);
                uTrainingMaster.TrainingDate = new System.DateTime(tempDate.Year, tempDate.Month, tempDate.Day, time.Hours, time.Minutes, 0);
            }

            if (uTrainingMaster.TrainingDateEnd != null)
            {
                var             tempDate = uTrainingMaster.TrainingDateEnd.Value;
                System.TimeSpan time     = System.TimeSpan.Parse(uTrainingMaster.TrainingDateEndTime);
                uTrainingMaster.TrainingDateEnd = new System.DateTime(tempDate.Year, tempDate.Month, tempDate.Day, time.Hours, time.Minutes, 0);
            }

            uTrainingMaster.ModifyDate = DateTime.Now;
            uTrainingMaster.Modifyer   = uTrainingMaster.Modifyer ?? "Someone";

            var course = this.repositoryCousre.Get(uTrainingMaster.TrainingCousreId.Value);

            if (uTrainingMaster.TblTrainingDetail != null)
            {
                foreach (var detail in uTrainingMaster.TblTrainingDetail)
                {
                    detail.MinScore = course.MinimunScore;
                    if (detail.TrainingDetailId > 0)
                    {
                        detail.ModifyDate = uTrainingMaster.ModifyDate;
                        detail.Modifyer   = uTrainingMaster.Modifyer;
                    }
                    else
                    {
                        detail.CreateDate = uTrainingMaster.ModifyDate;
                        detail.Creator    = uTrainingMaster.Modifyer;
                    }
                    if (detail.Score != null)
                    {
                        detail.StatusForTraining = (byte)(detail.Score >= detail.MinScore ? 1 : 2);
                    }
                }
            }

            // Update Place
            if (uTrainingMaster.PlaceId.HasValue)
            {
                Expression <Func <TblTrainingMasterHasPlace, bool> > condition = e => e.TrainingMasterId == uTrainingMaster.TrainingMasterId;

                var HasPlace = this.repositoryHasPlace.Find(condition);
                if (HasPlace != null)
                {
                    HasPlace.ModifyDate = uTrainingMaster.ModifyDate;
                    HasPlace.Modifyer   = uTrainingMaster.Modifyer;
                    HasPlace.PlaceId    = uTrainingMaster.PlaceId;

                    this.repositoryHasPlace.Update(HasPlace, HasPlace.TrainingMasterHasPlaceId);
                }
                else
                {
                    uTrainingMaster.TblTrainingMasterHasPlace.Add(new TblTrainingMasterHasPlace()
                    {
                        CreateDate = uTrainingMaster.ModifyDate,
                        Creator    = uTrainingMaster.Modifyer ?? "Someone",
                        PlaceId    = uTrainingMaster.PlaceId,
                    });
                }
            }

            var hasData = this.repository.Update(
                this.mapper.Map <TrainingMasterViewModel, TblTrainingMaster>(uTrainingMaster), id);

            if (hasData != null)
            {
                // filter
                Expression <Func <TblTrainingDetail, bool> > condition = m => m.TrainingMasterId == id;
                var dbTrainingDetails = this.repositoryDetail.FindAll(condition);

                //Remove TrainingDetail if edit remove it
                foreach (var dbTrainingDetail in dbTrainingDetails)
                {
                    if (!uTrainingMaster.TblTrainingDetail.Any(x => x.EmployeeTraining == dbTrainingDetail.EmployeeTraining))
                    {
                        this.repositoryDetail.Delete(dbTrainingDetail.TrainingDetailId);
                    }
                }
                //Update TrainingDetail
                foreach (var detail in uTrainingMaster.TblTrainingDetail)
                {
                    if (detail.TrainingDetailId > 0)
                    {
                        this.repositoryDetail.Update(detail, detail.TrainingDetailId);
                    }
                    else
                    {
                        detail.TrainingMasterId = uTrainingMaster.TrainingMasterId;
                        this.repositoryDetail.Add(detail);
                    }
                }
            }

            return(new JsonResult(hasData, this.DefaultJsonSettings));
        }