public async Task <IActionResult> Edit(Guid id, [Bind("From,To,ID,CreatedDateUtc,IsActive,Name,Description")] LeadActivity leadActivity) { if (id != leadActivity.ID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(leadActivity); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LeadActivityExists(leadActivity.ID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(leadActivity)); }
public async Task <IActionResult> Create([Bind("From,To,ID,CreatedDateUtc,IsActive,Name,Description")] LeadActivity leadActivity, Guid?ID) { if (ModelState.IsValid) { var masterid = ID; Lead lead = await _context.Lead.Where(x => x.ID.Equals(masterid)).FirstOrDefaultAsync(); leadActivity.ID = Guid.NewGuid(); leadActivity.Lead = lead; _context.Add(leadActivity); await _context.SaveChangesAsync(); return(RedirectToAction("Edit", "Leads", new { ID = masterid })); } return(View(leadActivity)); }
public bool IsInDB(LeadActivity leadActivity) { return (_context.LeadActivities.Any(la => la.ActivityDate == leadActivity.ActivityDate)); }
public void AddLeadActivity(LeadActivity leadActivity) { _context.LeadActivities.Add(leadActivity); }
public bool RetreiveData(string exportJobId) { var result = marketoAPIHelper.RetreiveDataRequest(exportJobId); try { var dict = JsonConvert.DeserializeObject <Dictionary <string, string> >(result); if (!bool.Parse(dict["success"])) { var errorRes = JsonConvert.DeserializeObject <RequestResultError>(result); ErrorHandling("Get Job Status", errorRes); return(false); } } catch (Exception) { } var resultList = result.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries).ToList(); var leadIdList = new List <int>(); var leadActivitiesList = new List <LeadActivity>(); foreach (var line in resultList) { var data = line.Split(','); var isParsed = int.TryParse(data[0], out var leadId); if (!isParsed) { continue; } DateTime.TryParse(data[1], out var activityDate); int.TryParse(data[2], out var activityId); var attributesList = new List <string>(); for (int i = 3; i < data.Length; i++) { attributesList.Add(data[i]); } string attributes = string.Join(",", attributesList); if (!leadIdList.Any(li => li == leadId)) { leadIdList.Add(leadId); } var leadActivity = new LeadActivity() { LeadId = leadId, ActivityDate = activityDate, ActivityId = activityId, Attributes = attributes }; if (!_unitOfWork.LeadActivities.IsInDB(leadActivity)) { leadActivitiesList.Add(leadActivity); } } PullMissingLeads(leadIdList); foreach (var leadActivity in leadActivitiesList) { int activityDBId = 0; int leadDbId = 0; activityDBId = _unitOfWork.Activities.GetId(leadActivity.ActivityId); leadDbId = _unitOfWork.Leads.GetId(leadActivity.LeadId); leadActivity.LeadId = leadDbId; leadActivity.ActivityId = activityDBId; _unitOfWork.LeadActivities.AddLeadActivity(leadActivity); } _unitOfWork.Complete(); return(true); }
public ViewResult Activities(string startDate, string endDate, int?page) { DateTime start = DateTime.MinValue; DateTime end = DateTime.MinValue; page = page ?? 1; ViewBag.StartDate = startDate; ViewBag.EndDate = endDate; start = DateTime.Parse(ViewBag.StartDate); end = DateTime.Parse(ViewBag.EndDate); var dataList = new List <ActivityViewModel>(); var leadsActivitiesList = new List <LeadActivity>(); leadsActivitiesList = _unitOfWork.LeadActivities.GetLeadActivities(start, end); if (LeadActivity.ToBeUpdated(start, end, leadsActivitiesList)) { var requestCount = 0; //var jobStatusRequestCount = 0; if (HttpContext.ApplicationInstance.Application["CreateExportRequestCount"] != null) { requestCount = (int)HttpContext.ApplicationInstance.Application["CreateExportRequestCount"]; } else { HttpContext.ApplicationInstance.Application["CreateExportRequestCount"] = requestCount; } //if (HttpContext.ApplicationInstance.Application["JobStatusRequestCount"] != null) // jobStatusRequestCount = (int)HttpContext.ApplicationInstance.Application["JobStatusRequestCount"]; //else // HttpContext.ApplicationInstance.Application["JobStatusRequestCount"] = jobStatusRequestCount; while (requestCount >= 2) { Thread.Sleep(60000); requestCount = (int)HttpContext.ApplicationInstance.Application["CreateExportRequestCount"]; } var exportJobId = _marketoHelper.CreateExportJob(start, end); requestCount++; HttpContext.ApplicationInstance.Application["CreateExportRequestCount"] = requestCount; _marketoHelper.QueueJob(exportJobId); string jobStatus = ""; Status?jobStatusEnum; jobStatus = _unitOfWork.ExportJobs.GetJobStatus(exportJobId); jobStatusEnum = (Status)Enum.Parse(typeof(Status), jobStatus, true); while (jobStatusEnum != Status.Completed && jobStatusEnum != Status.Failed) { //while (jobStatusRequestCount >= 20) //{ // Thread.Sleep(2000); // jobStatusRequestCount = (int)HttpContext.ApplicationInstance.Application["JobStatusRequestCount"]; //} jobStatusEnum = _marketoHelper.GetJobStatus(exportJobId); Thread.Sleep(2000); } requestCount--; HttpContext.ApplicationInstance.Application["CreateExportRequestCount"] = requestCount; _marketoHelper.RetreiveData(exportJobId); } var leadActivities = _unitOfWork.LeadActivities.GetLeadActivitiesWithIncludes(start, end); foreach (var leadActivity in leadActivities) { var activityType = _unitOfWork.Activities.GetActivity(leadActivity.ActivityId); var activityViewModel = new ActivityViewModel() { LeadId = leadActivity.Lead.LeadId.ToString(), ActivityType = activityType, ActivityDate = leadActivity.ActivityDate.ToString(), CampaignId = leadActivity.Lead.CampaignId, SFDCId = leadActivity.Lead.SFDCId, Attributes = leadActivity.Attributes }; dataList.Add(activityViewModel); } int pageSize = 10; int pageNumber = (page ?? 1); return(View(dataList.ToPagedList(pageNumber, pageSize))); }