/// <summary> /// Linking the activities and tags together in this join table /// </summary> /// <param name="tDTOList"></param> /// <returns></returns> public async Task CreateTaskActivityByID(List <TagDTO> tDTOList) { int lastActivity = await _context.Activities.OrderByDescending(x => x.ID).Select(x => x.ID).FirstAsync(); TagActivity tagActivity = new TagActivity(); for (int i = 0; i < tDTOList.Count; i++) { tagActivity.ActivitiesId = lastActivity; tagActivity.TagId = tDTOList[i].ID; _context.TagActivity.Add(tagActivity); await _context.SaveChangesAsync(); } }
private void OnNext(TagActivity activity) { switch (activity.Operation) { case TagOperation.DELETE: DeleteTagFromJobs(activity.Value); break; case TagOperation.UPDATE: UpdateTagsInJobs(activity.Value, activity.OldValue); break; default: throw new NotImplementedException($"{activity.Operation} is not supported for extension works"); } }
private CreateWorkLogRequest ConstructCreateWorkLogRequest(TagActivity tagActivity, string userId) { var workItemGroup = tagActivity.Groups.Where(g => g.Key.StartsWith("#")).Single(); var workItemId = workItemGroup.Key.TrimStart('#'); bool billable = tagActivity.Groups.Any(g => g.Key == TagLabels.Billable); var activityTypeId = billable ? _billableActivityId : _nonBillableActivityId; return(new CreateWorkLogRequest( timeStamp: tagActivity.StartTime.UtcDateTime, length: Convert.ToInt32(tagActivity.Duration.TotalSeconds), workItemId: workItemId, comment: $"via{ClientPlugin.HiddenTagLabel}[{tagActivity.ActivityId}]\n{tagActivity.Notes}", userId: userId, activtyTypeId: activityTypeId)); }
public async Task <ActionResult <TagActivity> > PostTagActivity(TagActivity tagActivity) { _context.TagActivity.Add(tagActivity); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (TagActivityExists(tagActivity.ActivitiesId)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetTagActivity", new { id = tagActivity.ActivitiesId }, tagActivity)); }
private IEnumerable <WorkLog> FindDuplicateExistingWorkLogs(IEnumerable <WorkLog> workLogs, TagActivity tagActivity) { var existingFormat = new Regex($@"via{ClientPlugin.HiddenTagLabel}\[(\d+)\]"); foreach (WorkLog workLog in workLogs) { Match match = existingFormat.Match(workLog.Comment); if (match.Success == false || int.Parse(match.Groups[1].Value) != tagActivity.ActivityId) { continue; } yield return(workLog); } }