/// <summary>
        ///
        /// </summary>
        /// <param name="team"></param>
        /// <returns></returns>
        public OperationResult <ModelFolder> Create(ModelFolder f)
        {
            OperationResult <ModelFolder> res;

            try
            {
                var entity = f
                             .ToEntity()
                             .IncludeActiveOrgId(DataContext);

                DataContext.Add(entity);

                DataContext.SaveChanges();

                var model = entity
                            .UpdateId(f)
                            .ToModel()
                            .AddTime(DataContext.Entry(entity))
                            .AddVersion(DataContext.Entry(entity));

                f.Uid = entity.Uid;

                res = OperationResult <ModelFolder> .Create(model);
            }
            catch (Exception e)
            {
                res = OperationResult <ModelFolder> .Create(ErrorCode.BadCreateFolder, e);
            }

            return(res);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static ModelFolderPermissions GetDefault(ModelFolder f)
        {
            var list = new ModelFolderPermissions();

            var editor = new ModelFolderPermission()
            {
                Folder     = f,
                Role       = Security.Role.Editor,
                Permission = Security.Permission.Edit,
            };

            var viewer = new ModelFolderPermission()
            {
                Folder     = f,
                Role       = Security.Role.Viewer,
                Permission = Security.Permission.View
            };

            editor.Bag.Created     = editor.Bag.Updated =
                viewer.Bag.Created = viewer.Bag.Updated = DateTime.Now;

            list.Add(editor);
            list.Add(viewer);

            return(list);
        }
Beispiel #3
0
        public void Should_CreateFolder_WhenEmptyInput()
        {
            var model = new ModelFolder();
            var res   = _repo.Create(model);

            Assert.False(res.HasError);
            Assert.True(res.Value.Equals(model));
        }
Beispiel #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="f"></param>
        public void Update(ModelFolder f)
        {
            Title = f.Title;

            if (!string.IsNullOrEmpty(f.Uid))
            {
                Uid = f.Uid;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="team"></param>
        /// <returns></returns>
        public OperationResult <ModelFolder> Update(string uid, ModelFolder f)
        {
            OperationResult <ModelFolder> res;

            try
            {
                var entity = DataContext
                             .Folders
                             .ForActiveOrg()
                             .FirstOrDefault(x => x.Uid == uid);

                if (null == entity)
                {
                    return(OperationResult <ModelFolder> .Create(ErrorCode.BadGetFolder));
                }

                entity.Update(f);

                if (ExpandoHelper.GetProperty <bool>(f, "Overwrite"))
                {
                    var v = f.Bag.Version;

                    var currentVersion = ( int )DataContext
                                         .Entry(entity)
                                         .Property(DataContext.COL_VERSION)
                                         .CurrentValue;

                    if (currentVersion != v)
                    {
                        return(OperationResult <ModelFolder> .Create(ErrorCode.BadUpdateFolderVersionMismatch));
                    }
                }

                DataContext.Update(entity);

                DataContext.SaveChanges();

                var model = entity
                            .UpdateId(f)
                            .ToModel()
                            .AddTime(DataContext.Entry(entity))
                            .AddVersion(DataContext.Entry(entity));

                res = OperationResult <ModelFolder> .Create(model);
            }
            catch (Exception e)
            {
                res = OperationResult <ModelFolder> .Create(ErrorCode.BadUpdateFolder, e);
            }

            return(res);
        }
            /// <summary>
            ///
            /// </summary>
            /// <returns></returns>
            public ModelFolder ToModel(string uid = null)
            {
                var f = new ModelFolder()
                {
                    Title = Title,
                    Uid   = Uid,
                };

                f.Bag.Version   = Version;
                f.Bag.Overwrite = Overwrite;

                return(f);
            }
Beispiel #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public static EntityFolder ToEntity(this ModelFolder f)
        {
            var e = new EntityFolder()
            {
                Id    = f.Id,
                OrgId = f.OrgId,
                Title = f.Title,
                Uid   = f.Uid
            };

            if (string.IsNullOrEmpty(e.Uid))
            {
                e.Uid = TestFactory.GetUid();
            }

            return(e);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="f"></param>
        /// <returns></returns>
        private object ToGetSingleFolderReply(ModelFolder f)
        {
            return(new
            {
                f.Id,
                f.Uid,
                f.Title,
                f.OrgId,
                f.Url,

                f.HasAcl,
                DataContext.Acl?.CanAdmin,
                DataContext.Acl?.CanEdit,

                f.Bag.Created,
                f.Bag.Updated,
                f.Bag.Version
            });
        }