private string GetDateLink(ActivityItemViewModel activityItem) { var url = Url.Action("DownloadDocument", "DocumentModal", new { area = string.Empty, documentNumber = "{0}" }); var docs = activityItem.Documents; var builder = new StringBuilder(); if (docs != null && docs.Any()) { if (docs.Count > 1) { builder.AppendLine(string.Format("<a href=\"#\" data-activityItem-id=\"{0}\">{1}</a>", activityItem.Id, activityItem.Date)); builder.AppendLine(string.Format("<div class=\"hide modalBody\" data-activityitem-popup=\"{0}\">", activityItem.Id)); builder.AppendLine("<ul>"); foreach (var doc in docs) { builder.AppendLine(string.Format("<li>Document: {0} <a name='documentLink' href=\"{1}\">(reference: {2})</a></li>", doc.Description, string.Format(url, doc.DocNumber), doc.DocNumber)); } builder.AppendLine("</ul>"); builder.AppendLine("</div>"); } else { builder.AppendLine(string.Format("<a name='documentLink' href=\"{0}\">{1}</a>", string.Format(url, docs[0].DocNumber), activityItem.Date)); } } else { builder.AppendLine(activityItem.Date); } return(builder.ToString()); }
private void AddActivity(ActivityItemViewModel activity) { //if (this.Activities.All(act => act.ActivityId != activity.ActivityId)) //{ // this.Activities.Add(activity); // this._activityItemsChangedSubject.OnNext(this.Activities); //} }
private async Task SelectActivity(ActivityItemViewModel selectedActivity) { var parameters = new NavigationParameters(); parameters.Add("SelectedActivity", selectedActivity); parameters.Add("ActionMode", ActionMode.Edit); await _navigationService.NavigateAsync(NavigationConstants.Activity, parameters); }
internal static ActivityModel Get(ActivityItemViewModel activity) { return(new ActivityModel() { Id = activity.Id, Date = activity.Date.Date.Add(activity.Time), Description = activity.Description, Title = activity.Title, State = (int)activity.State, }); }
public override void OnNavigatedTo(INavigationParameters parameters) { ActionMode = (ActionMode)parameters["ActionMode"]; if (ActionMode == ActionMode.Create) { SelectedActivity = new ActivityItemViewModel(); } else { SelectedActivity = (ActivityItemViewModel)parameters["SelectedActivity"]; } base.OnNavigatedTo(parameters); }
public WorkflowDefinition(IEnumerable <DesignerItemViewModelBase> items, IEnumerable <ConnectorViewModel> connectors, ActivityItemViewModel startActivity) { var activities = new List <ActivityDefinition>(); foreach (var i in items) { var activityDefinition = new ActivityDefinition(); var activityInfo = i as ActivityItemViewModel; activityDefinition.Id = i.Id; if (activityInfo != null) { activityDefinition.Name = activityInfo.ActivityName; activityDefinition.Guard = activityInfo.SelectedActivityGuardType.ToString(); activityDefinition.Settings = activityInfo.Settings.Select(s => new Setting() { Name = s.Key, Value = s.Value }).ToArray(); } else { activityDefinition.Name = "UnknownActivity_" + i.Id; } activities.Add(activityDefinition); } Activities = activities.ToArray(); var transitions = connectors.Select(c => new TransitionDefinition() { Id = c.Id, ConditionText = c.ConditionText ?? "true", SourceActivityId = IdMod(c.SourceConnectorInfo.DataItem), TargetActivityId = IdMod((c.SinkConnectorInfo as FullyCreatedConnectorInfo)?.DataItem) }).ToList(); if (startActivity != null) { var startTransition = new TransitionDefinition() { ConditionText = "true", SourceActivityId = -1, TargetActivityId = startActivity.Id }; long maxId = 0; if (transitions != null && transitions.Count > 0) { maxId = transitions.Max(t => t.Id); } startTransition.Id = maxId + 1; transitions.Add(startTransition); } Transitions = transitions.ToArray(); Settings = new Setting[] { new Setting() { Name = "statemachinetype", Value = "SomeStateMachineTypeClass" } }; Name = "Registered Workflow 66"; }
public (IEnumerable <DesignerItemViewModelBase> items, IEnumerable <ConnectorViewModel> connectors) ToVM(DiagramViewModel dvm) { var dataItems = ActivityItems.Select(ai => { Enum.TryParse <ActivityGuardType>(Workflow.Activities.First(adef => adef.Id == ai.ActivityId).Guard, out var selectedGuard); var avm = new ActivityItemViewModel(ai.ActivityId, dvm, ai.X, ai.Y) { ActivityName = ai.ActivityName, IconPath = ai.IconPath, SelectedActivityGuardType = selectedGuard, Settings = (Workflow.Activities.First(a => a.Id == ai.ActivityId).Settings == null) ? (new System.Collections.ObjectModel.ObservableCollection <SettingInfo>()) : (new System.Collections.ObjectModel.ObservableCollection <SettingInfo>(Workflow.Activities.First(a => a.Id == ai.ActivityId).Settings?.Select(s => new SettingInfo() { Key = s.Name, Value = s.Value }))) }; return(avm); }).ToArray(); dvm.WorkflowName = Workflow.Name; //dvm.WorkflowId = Workflow.Id; int.TryParse(Workflow.Id, out var wfId); dvm.WorkflowId = wfId; dvm.WorkflowDescription = Workflow.Description; dvm.WorkflowSettings = new System.Collections.ObjectModel.ObservableCollection <SettingInfo>(Workflow.Settings.Select(s => new SettingInfo() { Key = s.Name, Value = s.Value })); var connectors = new List <ConnectorViewModel>(); foreach (var c in ConnectorItems) { if (c.SourceId == -1) { continue; // start transition, specially handled } if (c.TargetId == -999) { continue; //unfinished transition, ignore } var fcciSrc = new FullyCreatedConnectorInfo(dataItems.Where(di => di.Id == c.SourceId).FirstOrDefault(), c.SourceOrientation); var fcciTgt = new FullyCreatedConnectorInfo(dataItems.Where(di => di.Id == c.TargetId).FirstOrDefault(), c.TargetOrientation); var cvm = new ConnectorViewModel(c.ConnectorId, fcciSrc.DataItem.Parent, fcciSrc, fcciTgt) { SourceA = c.SourceA, SourceB = c.SourceB, EndPoint = c.EndPoint, Area = c.Area, ConnectionPoints = c.Points, ConditionText = Workflow.Transitions.FirstOrDefault(t => t.Id == c.ConnectorId)?.ConditionText }; connectors.Add(cvm); } var vm = (dataItems, connectors); foreach (var di in dataItems) { foreach (var connector in connectors) { var src = connector.SourceConnectorInfo; var tgt = connector.SinkConnectorInfo as FullyCreatedConnectorInfo; if (src.DataItem == di) { var orientation = src.Orientation; switch (orientation) { case ConnectorOrientation.None: throw new Exception("Bad Orientation found on connector source"); case ConnectorOrientation.Left: di.LeftConnector = src; break; case ConnectorOrientation.Top: di.TopConnector = src; break; case ConnectorOrientation.Right: di.RightConnector = src; break; case ConnectorOrientation.Bottom: di.BottomConnector = src; break; default: break; } } if (tgt.DataItem.Id == di.Id) { var orientation = tgt.Orientation; switch (orientation) { case ConnectorOrientation.None: throw new Exception("Bad Orientation found on connector target"); case ConnectorOrientation.Left: di.LeftConnector = tgt; break; case ConnectorOrientation.Top: di.TopConnector = tgt; break; case ConnectorOrientation.Right: di.RightConnector = tgt; break; case ConnectorOrientation.Bottom: di.BottomConnector = tgt; break; default: break; } } } } return(vm); }
private DrawingboardDefinition(IEnumerable <DesignerItemViewModelBase> items, IEnumerable <ConnectorViewModel> connectors, ActivityItemViewModel startActivity) { Workflow = new WorkflowDefinition(items, connectors, startActivity); var activityItems = items.Select(i => i as ActivityItemViewModel).Where(i => i != null); ActivityItems = activityItems.Select(i => new DrawingboardActivityItem() { TypeName = i.GetType().FullName, IconPath = i.IconPath, ActivityName = i.ActivityName, X = i.Left, Y = i.Top, ActivityId = WorkflowDefinition.IdMod(i), BottomConnectorId = i.BottomConnector?.DataItem?.Id ?? -1, LeftConnectorId = i.LeftConnector?.DataItem?.Id ?? -1, RightConnectorId = i.RightConnector?.DataItem?.Id ?? -1, TopConnectorId = i.TopConnector?.DataItem?.Id ?? -1 }).ToArray(); ConnectorItems = connectors.Select(c => new DrawingboardConnectorItem() { ConnectorId = c.Id, SourceB = c.SourceB, Area = c.Area, SourceA = c.SourceA, EndPoint = c.EndPoint, Points = c.ConnectionPoints, SourceOrientation = c.SourceConnectorInfo.Orientation, TargetOrientation = c.SinkConnectorInfo?.Orientation ?? ConnectorOrientation.None, SourceId = WorkflowDefinition.IdMod(c.SourceConnectorInfo.DataItem), TargetId = WorkflowDefinition.IdMod((c.SinkConnectorInfo as FullyCreatedConnectorInfo)?.DataItem), }).ToArray(); }