Пример #1
0
 private static void PopulateRecord(ref TrainingOffer tr, ref TrainingVm vm)
 {
     tr.PortalUsersID         = vm.PortalUserId;
     tr.OrganizationContactID = vm.ContactId;
     tr.CourseNameID          = vm.Title;
     tr.OutlineFile           = vm.FileName;
     tr.CourseDurationPerDay  = vm.Duration;
     tr.CourseTimeFrom        = vm.TimeFrom.AsUtc();
     tr.CourseTimeTo          = vm.TimeTo.AsUtc();
     tr.TimeZone       = vm.TimeZone;
     tr.CountryID      = vm.Country;
     tr.CityID         = vm.City;
     tr.NoOfSeats      = vm.Seats;
     tr.CourseCost     = vm.Cost;
     tr.StartDate      = vm.StartDate.AsUtc();
     tr.EndDate        = vm.EndDate.AsUtc();
     tr.trainingStatus = vm.Status;
     tr.Is_Approved    = (byte)vm.Approval;
 }
Пример #2
0
        public long Post(ref TrainingVm vm, string userId)
        {
            using (var db = new LMISEntities())
                using (var transaction = db.Database.BeginTransaction())
                {
                    try
                    {
                        var id = vm.Id;

                        if (id > 0) //Update
                        {
                            var tr = db.TrainingOffers
                                     .Where(r => r.IsDeleted == null && r.TrainingOfferID == id)
                                     .ToList().Single();

                            PopulateRecord(ref tr, ref vm);
                            tr.UpdateUSerID = userId;
                            tr.UpdateDate   = DateTime.UtcNow;

                            //Delete detail records
                            var dr1 = db.TrainingOfferDetails
                                      .Where(r => r.TrainingOfferID == id)
                                      .ToList();

                            db.TrainingOfferDetails.RemoveRange(dr1);

                            var dr2 = db.TrainingOfferOccurrences
                                      .Where(r => r.TrainingOfferID == id)
                                      .ToList();

                            db.TrainingOfferOccurrences.RemoveRange(dr2);

                            var dr3 = db.TrainingSkillDetails
                                      .Where(r => r.TrainingOfferID == id)
                                      .ToList();

                            db.TrainingSkillDetails.RemoveRange(dr3);

                            var dr4 = db.TrainingOtherSkills
                                      .Where(r => r.TrainingOfferId == id)
                                      .ToList();

                            db.TrainingOtherSkills.RemoveRange(dr4);
                        }
                        else //Insert
                        {
                            var tr = new TrainingOffer();

                            PopulateRecord(ref tr, ref vm);
                            tr.PostUSerID = userId;
                            tr.PostDate   = DateTime.UtcNow;

                            db.TrainingOffers.Add(tr);
                            db.SaveChanges();

                            vm.Id = (long)tr.TrainingOfferID;
                        }

                        //Insert detail records
                        var ds = Utils.MultilingualDataSet(
                            new Dictionary <string, GlobalString>
                        {
                            { "c1", vm.NewTitle },
                            { "c2", vm.Description },
                            { "c3", vm.Address }
                        });

                        foreach (var r in ds)
                        {
                            db.TrainingOfferDetails.Add(new TrainingOfferDetail()
                            {
                                TrainingOfferID   = vm.Id,
                                LanguageID        = r["c1"].L,
                                OtherCours_Name   = r["c1"].T,
                                CourseDescription = r["c2"].T,
                                Address           = r["c3"].T
                            });
                        }

                        foreach (var r in vm.Occurrence)
                        {
                            db.TrainingOfferOccurrences.Add(new TrainingOfferOccurrence()
                            {
                                TrainingOfferID = vm.Id,
                                OccurrenceID    = r
                            });
                        }

                        foreach (var r in vm.Skills.Where(a => !a.IsNew))
                        {
                            db.TrainingSkillDetails.Add(new TrainingSkillDetail()
                            {
                                TrainingOfferID = vm.Id,
                                IndustryID      = r.Industry.id,
                                SkillID         = r.Skill.id,
                                SkillLevelID    = r.Level.id,
                                SkillTypeID     = r.Type == null || string.IsNullOrWhiteSpace(r.Type.id) ? null : r.Type.id
                            });
                        }

                        foreach (var r in vm.Skills.Where(a => a.IsNew))
                        {
                            db.TrainingOtherSkills.Add(new TrainingOtherSkill()
                            {
                                TrainingOfferId = vm.Id,
                                IndustryId      = r.Industry.id,
                                OtherSkill      = r.Skill.desc,
                                SkillLevelId    = r.Level.id,
                                IsReviewed      = false
                            });
                        }

                        db.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        ExceptionDispatchInfo.Capture(ex).Throw();
                    }
                }

            return(vm.Id);
        }