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; }
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)); }
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); }
public static object Post(TrainingVm data, bool validateOnly) { var mr = Mgr.Post(Utils.LoggedUser, ref data, Utils.UploadFolder, validateOnly); return(Utils.ServiceResponse(PageCode, mr)); }