示例#1
0
        public void SetUp()
        {
            var desc = new DirDescription("kot1\\ kot", "kot");

            parent           = new MainDir(desc);
            defaultGenerator = DirNameGenerator.GetDefaultInstance();
        }
示例#2
0
        public ChildDir(string Name, IEditableDirWithChildren mainDir)
        {
            this.ParentDir = mainDir;
            DirDescription dirDescription = new DirDescription(
                name: Name,
                fullName: $"{mainDir.Description.FullName}\\{Name}"
                );

            Description = dirDescription;
        }
        /*  Method Info
         * metoda powinna być użyta tylko raz do wygenerowania punktu początkowego drzewa(root) ponieważ tworzy ona NOWY OBIEKT
         * a nie zwraca do niego referencji.
         * Powiązania powinny być zachowane a nie tworzone osobno dla każdego folderu
         */
        /// <summary>
        /// returns new MainDir with auto generated name and path
        /// </summary>
        /// <param name="fullName"></param>
        /// <returns> returns new MainDir </returns>

        internal IEditableDirWithChildren GetMainDirFolder(string fullName)
        {
            if (String.IsNullOrWhiteSpace(fullName))
            {
                throw new ArgumentException("fullname is empty/null");
            }
            DirectoryInfo  dir            = GetParentFolder(fullName);
            DirDescription dirDescription = new DirDescription(dir.FullName, dir.Name);

            return(new MainDir(dirDescription));
        }
        public void AutoGenerateDirFullName_WhenCalled_ReturnsFullName()
        {
            var mainDirDescr  = new DirDescription("cat1\\cat2\\cat3", "cat3");
            var childDirDescr = new DirDescription("cat1\\catX", "catX");
            var main          = new MainDir(mainDirDescr);
            var child         = new ChildDir(childDirDescr, main);

            defaultDirManagement.AutoGenerateDirFullName(child);

            Assert.AreEqual(mainDirDescr.FullName + "\\" + childDirDescr.Name, child.Description.FullName);
        }
        public void AutoGenerateChildrenFullName_WhenCalled_RenamesChildren()
        {
            var mainDirDescr    = new DirDescription("cat1\\cat2\\cat3", "cat3");
            var childDirDescr1  = new DirDescription("cat1\\cat1", "cat1");
            var childDirDescr11 = new DirDescription("cat1\\cat11", "cat11");
            var main            = new MainDir(mainDirDescr);
            var child1          = new ChildDir(childDirDescr1, main);
            var child11         = new ChildDir(childDirDescr11, child1);

            child1.AddChildToChildrenList(child11);
            main.AddChildToChildrenList(child1);

            defaultDirManagement.AutoGenerateChildrenFullName(main);

            Assert.IsTrue(main.Description.FullName + "\\" + child1.Description.Name == child1.Description.FullName &&
                          child1.Description.FullName + "\\" + child11.Description.Name == child11.Description.FullName);
        }
示例#6
0
        public async Task <IHttpActionResult> DeleteDirDescription(int id)
        {
            #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции

            //Получаем Куку
            System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"];

            // Проверяем Логин и Пароль
            Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true));

            if (!field.Access)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10)));
            }

            //Изменяем строку соединения
            db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true));

            //Права (1 - Write, 2 - Read, 3 - No Access)
            int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirDescriptions"));

            if (iRight != 1)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))));
            }

            //Разные Функции
            function.NumberDecimalSeparator();

            //Получам настройки
            Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1);

            #endregion

            #region Удаление

            try
            {
                DirDescription dirDescription = await db.DirDescriptions.FindAsync(id);

                if (dirDescription == null)
                {
                    return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg99)));
                }

                db.DirDescriptions.Remove(dirDescription);
                await db.SaveChangesAsync();


                #region 6. JourDisp *** *** *** *** *** *** *** *** *** *

                Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp();
                sysJourDisp.DirDispOperationID = 5; //Удаление записи
                sysJourDisp.DirEmployeeID      = field.DirEmployeeID;
                sysJourDisp.ListObjectID       = ListObjectID;
                sysJourDisp.TableFieldID       = dirDescription.DirDescriptionID;
                sysJourDisp.Description        = "";
                try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { }

                #endregion


                dynamic collectionWrapper = new
                {
                    ID  = dirDescription.DirDescriptionID,
                    Msg = Classes.Language.Sklad.Language.msg19
                };
                return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, "")
            }
            catch (Exception ex)
            {
                return(Ok(returnServer.Return(false, exceptionEntry.Return(ex))));
            }

            #endregion
        }
示例#7
0
        public async Task <IHttpActionResult> PostDirDescription(DirDescription dirDescription)
        {
            #region Проверяем Логин и Пароль + Изменяем строку соединения + Права + Разные Функции

            //Получаем Куку
            System.Web.HttpCookie authCookie = System.Web.HttpContext.Current.Request.Cookies["CookieIPOL"];

            // Проверяем Логин и Пароль
            Classes.Account.Login.Field field = await Task.Run(() => login.Return(authCookie, true));

            if (!field.Access)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg10)));
            }

            //Изменяем строку соединения
            db = new DbConnectionSklad(connectionString.Return(field.DirCustomersID, null, true));

            //Права (1 - Write, 2 - Read, 3 - No Access)
            int iRight = await Task.Run(() => accessRight.Access(connectionString.Return(field.DirCustomersID, null, true), field.DirEmployeeID, "RightDirDescriptions"));

            if (iRight != 1)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg57(0))));
            }

            //Разные Функции
            function.NumberDecimalSeparator();

            //Получам настройки
            Models.Sklad.Sys.SysSetting sysSetting = await db.SysSettings.FindAsync(1);

            #endregion

            #region Проверки

            if (!ModelState.IsValid)
            {
                return(Ok(returnServer.Return(false, Classes.Language.Sklad.Language.msg91)));                     //return BadRequest(ModelState);
            }
            //Подстановки - некоторые поля надо заполнить, если они не заполены
            //dirDescription.Substitute();

            #endregion


            #region Сохранение

            try
            {
                //Используем метод, что бы было всё в одном потоке
                db.Entry(dirDescription).State = EntityState.Added;
                await Task.Run(() => db.SaveChangesAsync());


                #region 6. JourDisp *** *** *** *** *** *** *** *** *** *

                Models.Sklad.Sys.SysJourDisp sysJourDisp = new Models.Sklad.Sys.SysJourDisp();
                sysJourDisp.DirDispOperationID = 3; //Добавление записи
                sysJourDisp.DirEmployeeID      = field.DirEmployeeID;
                sysJourDisp.ListObjectID       = ListObjectID;
                sysJourDisp.TableFieldID       = dirDescription.DirDescriptionID;
                sysJourDisp.Description        = "";
                try { sysJourDispsController.mPutPostSysJourDisps(db, sysJourDisp, EntityState.Added); } catch (Exception ex) { }

                #endregion


                dynamic collectionWrapper = new
                {
                    ID = dirDescription.DirDescriptionID
                };
                return(Ok(returnServer.Return(true, collectionWrapper))); //return Ok(returnServer.Return(true, ""));
            }
            catch (Exception ex)
            {
                return(Ok(returnServer.Return(false, exceptionEntry.Return(ex))));
            }

            #endregion
        }
        public void onSetUp()
        {
            DirDescription desc = new DirDescription("cats/are/great/mainDir", "mainDir");

            mainDir = new MainDir(desc);
        }