Example #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;
 }
Example #2
0
        public ModelResponse Post(UserInfo user, ref TrainingVm vm, string fileFolder, bool validateOnly)
        {
            try
            {
                //Authorization
                if (!IsAuthorized(user))
                {
                    return(new ModelResponse(101));
                }
                Debug.Assert(user.OrgContactId != null);
                if (vm.Id > 0 && !Repo.IsByOrgContact(vm.Id, (long)user.OrgContactId))
                {
                    return(new ModelResponse(101));
                }

                //Validations
                if ((vm.Title.IsNotASubCode() && vm.NewTitle.HasNoValue()) ||
                    vm.Country.IsNotASubCode() || vm.City.IsNotASubCode() ||
                    vm.Address.HasNoValue() || vm.Duration <= 0 ||
                    vm.Occurrence.Count < 1 || vm.Occurrence.Any(o => o.IsNotASubCode()) ||
                    vm.TimeZone.IsNotASubCode() || vm.Skills.Count < 1 ||
                    vm.Skills.Any(s => s.Industry.id.IsNotASubCode() || s.Level.id.IsNotASubCode()) ||
                    vm.Skills.Any(s => !s.IsNew && s.Skill.id.IsNotASubCode()))
                {
                    return(new ModelResponse(1));
                }
                if ((vm.Id < 1 && vm.StartDate < DateTime.Today) || vm.EndDate < vm.StartDate)
                {
                    return(new ModelResponse(2));
                }
                if (vm.TimeTo < vm.TimeFrom)
                {
                    return(new ModelResponse(3));
                }

                if (!validateOnly)
                {
                    //Validation after optional file upload
                    if (vm.Description.HasNoValue() && vm.FileName.HasNoValue())
                    {
                        return(new ModelResponse(1));
                    }

                    //Verify File Path
                    if (fileFolder.HasNoValue())
                    {
                        return(new ModelResponse(102));
                    }
                    if (!vm.FileName.HasNoValue() && !File.Exists(Path.Combine(fileFolder, vm.FileName)))
                    {
                        return(new ModelResponse(102));
                    }

                    //Save to DB
                    if (vm.Title.IsNotASubCode())
                    {
                        vm.Title = "";
                    }
                    else
                    {
                        vm.NewTitle = new GlobalString();
                    }

                    if (vm.Seats <= 0)
                    {
                        vm.Seats = 0;
                    }
                    if (vm.Cost <= 0)
                    {
                        vm.Cost = 0;
                    }

                    vm.Approval     = Approval.Pending;
                    vm.PortalUserId = (long)user.PortalUserId;
                    vm.ContactId    = (long)user.OrgContactId;
                    Repo.Post(ref vm, user.UserId);
                }
            }
            catch (Exception ex)
            {
                return(new ModelResponse(ex));
            }

            return(new ModelResponse(0, vm.Id));
        }
Example #3
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);
        }
Example #4
0
        public static object Post(TrainingVm data, bool validateOnly)
        {
            var mr = Mgr.Post(Utils.LoggedUser, ref data, Utils.UploadFolder, validateOnly);

            return(Utils.ServiceResponse(PageCode, mr));
        }