예제 #1
0
        /// <summary>
        /// Create a new <see cref="Altask.www.Models.TaskInstance"/>.
        /// </summary>
        /// <param name="task"></param>
        /// <param name="asset"></param>
        /// <param name="user"></param>
        /// <param name="date"></param>
        /// <returns></returns>
        private static TaskInstance Create(Data.Dto.Task task, Data.Dto.Asset asset, Data.Dto.User user, DateTime date)
        {
            var instance = new TaskInstance()
            {
                Description = task.Description,
                Date        = date,
                IdleTimeout = task.IdleTimeout,
                FormModel   = task.Form.PublishedModel,
                TaskId      = task.Id,
                Metadata    = task.Metadata,
                Name        = task.Name,
                Category    = task.Category,
                Type        = task.Type,
            };

            if (asset != null)
            {
                instance.AssetId = asset.Id;
                instance.Asset   = asset;
            }

            if (user != null)
            {
                instance.UserId = user.Id;
                instance.User   = user;
            }

            return(instance);
        }
예제 #2
0
        internal override void BeforeUpdate(Data.Model.Asset entity, Data.Dto.Asset dto)
        {
            ThrowIfDisposed();

            var currentGroups = entity.Groups.ToList();

            for (var index = currentGroups.Count - 1; index >= 0; index--)
            {
                var group = currentGroups[index];

                if (!dto.Groups.Any(ag => ag.AssetGroupId == group.AssetGroupId))
                {
                    Context.AssetGroupings.Remove(group);
                }
            }

            foreach (var group in dto.Groups)
            {
                var existingGroup = Context.AssetGroups.FirstOrDefault(ag => ag.Id == group.AssetGroupId);

                if (existingGroup != null)
                {
                    if (!entity.Groups.Any(ag => ag.AssetGroupId == group.AssetGroupId))
                    {
                        entity.Groups.Add(new Data.Model.AssetGrouping()
                        {
                            AssetGroupId = existingGroup.Id
                        });
                    }
                }
            }
        }
예제 #3
0
        internal override void BeforeCreate(Data.Model.Asset entity, Data.Dto.Asset dto)
        {
            ThrowIfDisposed();

            foreach (var item in dto.Groups)
            {
                entity.Groups.Add(new Data.Model.AssetGrouping()
                {
                    AssetGroupId = item.AssetGroupId
                });
            }
        }
예제 #4
0
 /// <summary>
 /// Create a new <see cref="Altask.www.Models.TaskInstance"/>.
 /// </summary>
 /// <param name="task"></param>
 /// <param name="asset"></param>
 /// <param name="date"></param>
 /// <returns></returns>
 private static TaskInstance Create(Data.Dto.Task task, Data.Dto.Asset asset, DateTime date)
 {
     return(Create(task, asset, null, date));
 }