public async Task <ActionResult> Create(CallCodeModel model) { try { if (ModelState.IsValid) { var campaign = await db.Campaigns .SingleOrDefaultAsync(x => !x.IsDeleted && x.Id == model.CampaignId); if (campaign == null) { AddAlert("Campaign not found", AlertType.error); return(RedirectToAction("Index")); } var callCode = new CallCode( campaign, model.Name, model.Code, model.Behavior, model.IsSuccess, DateTime.Now); db.CallCodes.Add(callCode); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } } catch (Exception e) { AddAlert($"Oops! something went wrong. Error code: {e.HResult}", "Create(model)", GetType().ToString(), AlertType.error, e); } return(View(model)); }
public void CreateDomainLevel1() { try { var ctx = ApplicationDbContext.Create(); //already OK if (ctx.Campaigns.Any()) { return; } var reader = new ReadOnlyContext(); var db = MemoryDB.LoadDomainLevel1(reader); var container = new MemoryDB(); foreach (var item in db.Campaigns) { var campaign = new Campaign { Id = item.Id, //AccountManager = accountManager, //AccountManagerId = accountManager?.Id, AccountManagerId = item.AccountManagerId, //Client = client, //ClientId = client?.Id, ClientId = item.ClientId, ActiveControl = item.ActiveControl, BillingPH = item.BillingPH, CampaignLimit = item.CampaignLimit, CompanyLink = item.CompanyLink, CreationDate = item.CreationDate, Description = item.Description, Identifier = item.Identifier, IsDeleted = item.IsDeleted, LastUpdate = item.LastUpdate, MaxAttempt = item.MaxAttempt, Objective = item.Objective, SpellCheck = item.SpellCheck, }; container.Campaigns.Add(campaign); } foreach (var item in db.Projects) { var project = new Project { Id = item.Id, //Campaign = campaign, //CampaignId = campaign.Id, CampaignId = item.CampaignId, CreationDate = item.CreationDate, Description = item.Description, IsDeleted = item.IsDeleted, LastUpdate = item.LastUpdate, Name = item.Name, Priority = item.Priority, }; container.Projects.Add(project); } foreach (var item in db.TimeZones) { var timeZone = new Entities.TimeZone { Id = item.Id, Code = item.Code, CreationDate = item.CreationDate, CurrentTime = item.CurrentTime, DST = item.DST, IsDeleted = item.IsDeleted, LastUpdate = item.LastUpdate, Name = item.Name, STD = item.STD, }; container.TimeZones.Add(timeZone); } foreach (var item in db.Penalties) { var penalty = new Penalty { Id = item.Id, CreationDate = item.CreationDate, From = item.From, IsDeleted = item.IsDeleted, LastUpdate = item.LastUpdate, PayRate = item.PayRate, PenaltyFee = item.PenaltyFee, To = item.To, }; container.Penalties.Add(penalty); } foreach (var item in db.AlertSettings) { var alertSettings = new AlertSettings { Id = item.Id, LastUpdate = item.LastUpdate, CreationDate = item.CreationDate, DataPercentage = item.DataPercentage, IsDeleted = item.IsDeleted, NotificationEmails = item.NotificationEmails, }; container.AlertSettings.Add(alertSettings); } foreach (var item in db.AreaCodes) { var areaCode = new AreaCode { Id = item.Id, //TimeZone = timeZone, //TimeZoneId = timeZone.Id, TimeZoneId = item.TimeZoneId, CreationDate = item.CreationDate, IsDeleted = item.IsDeleted, LastUpdate = item.LastUpdate, Name = item.Name, TZ = item.TZ, }; container.AreaCodes.Add(areaCode); } foreach (var item in db.CallCodes) { var campaign = container.Campaigns .SingleOrDefault(x => x.Id == item.CampaignId); var callCode = new CallCode( campaign, item.Name, item.Code, item.Behavior, item.IsSuccess, item.CreationDate); callCode.IsDeleted = item.IsDeleted; container.CallCodes.Add(callCode); } foreach (var item in db.ExportSettings) { var exportSettings = new ExportSettings { Id = item.Id, //NOT FK CampaignId = item.CampaignId, CreationDate = item.CreationDate, IsDeleted = item.IsDeleted, Key = item.Key, LastUpdate = item.LastUpdate, Name = item.Name, Value = item.Value, }; container.ExportSettings.Add(exportSettings); } foreach (var item in db.ProjectPriorities) { var projectPriority = new ProjectPriority { Id = item.Id, //Project = item.Project, //ProjectId = project.Id, ProjectId = item.ProjectId, LastUpdate = item.LastUpdate, IsDeleted = item.IsDeleted, CreationDate = item.CreationDate, Field = item.Field, PriorityValue = item.PriorityValue, }; container.ProjectPriorities.Add(projectPriority); } foreach (var item in db.ProjectPriorityDetails) { var projectPriorityDetail = new ProjectPriorityDetail { Id = item.Id, //ProjectPriority = projectPriority, //ProjectPriorityId = projectPriority.Id, ProjectPriorityId = item.ProjectPriorityId, CreationDate = item.CreationDate, FieldPriorityValue = item.FieldPriorityValue, FieldValue = item.FieldValue, IsDeleted = item.IsDeleted, LastUpdate = item.LastUpdate, }; container.ProjectPriorityDetails.Add(projectPriorityDetail); } foreach (var item in db.StateRestrictions) { var stateRestriction = new StateRestriction { Id = item.Id, //TimeZone = timeZone, //TimeZoneId = timeZone.Id, TimeZoneId = item.TimeZoneId, LastUpdate = item.LastUpdate, IsDeleted = item.IsDeleted, Abbreviation = item.Abbreviation, CreationDate = item.CreationDate, IsRestricted = item.IsRestricted, Name = item.Name, }; container.StateRestrictions.Add(stateRestriction); } foreach (var item in db.OnWatchSettings) { var onWatchSettings = new OnWatchSettings { Id = item.Id, //Campaign = campaign, //CampaignId = campaign.Id, CampaignId = item.CampaignId, CreationDate = item.CreationDate, HoursLeft = item.HoursLeft, IsDeleted = item.IsDeleted, LastUpdate = item.LastUpdate, }; container.OnWatchSettings.Add(onWatchSettings); } ctx.Campaigns.AddRange(container.Campaigns); ctx.Projects.AddRange(container.Projects); ctx.TimeZones.AddRange(container.TimeZones); ctx.Penalties.AddRange(container.Penalties); ctx.AlertSettings.AddRange(container.AlertSettings); ctx.AreaCodes.AddRange(container.AreaCodes); ctx.CallCodes.AddRange(container.CallCodes); ctx.ExportSettings.AddRange(container.ExportSettings); ctx.ProjectPriorities.AddRange(container.ProjectPriorities); ctx.ProjectPriorityDetails.AddRange(container.ProjectPriorityDetails); ctx.StateRestrictions.AddRange(container.StateRestrictions); ctx.SaveChanges(); } catch (Exception ex) { var str = ex.ToString(); System.Diagnostics.Debug.WriteLine(str); } }
public void Visit(CallCode code) { AddReference(code.Reference); }