Esempio n. 1
0
        public void CheckFromReflection()
        {
            //Создаем велосипед, чтобы загрузилась сборка.
            var vel = new Велосипед();
            var ass = AppDomain.CurrentDomain
                      .GetAssemblies()
                      .FirstOrDefault(x => x.FullName.Contains("Прокат_велосипедов_2.Objects"));

            if (ass == null)
            {
                Assert.Fail("Не загружается сборка");
            }

            Assembly a     = Assembly.Load(ass.FullName);
            var      types = a.GetTypes().Where(x => x.BaseType == typeof(DataObject)).ToList();
            var      ds    = TestHelper.DS;

            var sb = new StringBuilder();

            foreach (var t in types)
            {
                object obj = Activator.CreateInstance(t);
                View   v   = new View();
                v.DefineClassType = t;
                var lcs = LoadingCustomizationStruct.GetSimpleStruct(t, v);
                var notStoredAttribute = t.GetCustomAttribute(typeof(NotStoredAttribute));
                try
                {
                    var objects = ds.LoadObjects(lcs);
                    if (notStoredAttribute != null)
                    {
                        //Успешно загрузли нехранимые объекты.
                        sb.Append($"Класс {t} не должен храниться в БД {Environment.NewLine}");
                    }
                    else
                    {
                        //Хранимые объекты загружены нормально.
                    }
                }
                catch (Exception)
                {
                    if (notStoredAttribute == null)
                    {
                        //Не загрузились хранимые объекты
                        sb.Append($"Несоответствие в классе {t} {Environment.NewLine}");
                    }
                    else
                    {
                        //Нехранимые объекты не загрузились.
                    }
                }
            }

            if (sb.Length != 0)
            {
                Assert.Fail(sb.ToString());
            }
        }
Esempio n. 2
0
        public void CheckAcessExistance()
        {
            //Создаем велосипед, чтобы загрузилась сборка.
            var vel = new Велосипед();
            var ass = AppDomain.CurrentDomain
                      .GetAssemblies()
                      .FirstOrDefault(x => x.FullName.Contains("Прокат_велосипедов_2.Objects"));

            if (ass == null)
            {
                Assert.Fail("Не загружается сборка");
            }

            Assembly a     = Assembly.Load(ass.FullName);
            var      types = a.GetTypes().Where(x => x.BaseType == typeof(DataObject)).ToList();
            var      ds    = TestHelper.DS;

            var sb = new StringBuilder();

            foreach (var t in types)
            {
                object obj = Activator.CreateInstance(t);
                View   v   = new View();
                v.DefineClassType = t;
                var lcs = LoadingCustomizationStruct.GetSimpleStruct(t, v);
                var notStoredAttribute = t.GetCustomAttribute(typeof(NotStoredAttribute));
                //Смотрим только хранимые объекты.
                if (notStoredAttribute == null)
                {
                    string className = t.ToString();
                    int    permCount = ds
                                       .Query <Permition>()
                                       .Count(x => x.Subject.IsClass &&
                                              x.Agent.IsRole &&
                                              x.Subject.Name == className);
                    if (permCount == 0)
                    {
                        sb.Append($"На класс {className} отсутствуют какие-либо полномочия");
                    }
                }
            }

            if (sb.Length != 0)
            {
                Assert.Fail(sb.ToString());
            }
        }
        public IHttpActionResult Post([FromBody] VidatVelosiped obj)
        //(string startDate, string plannedDuration, string plannedPrice,
        // string startPoint, string vel, string klient, string employee)
        {
            StringBuilder errorMessageBuilder = new StringBuilder();

            try
            {
                //Проверка входных парамтеров
                DateTime checkedStartDate = new DateTime();
                if (!DateTime.TryParse(obj.startDate, out checkedStartDate))
                {
                    errorMessageBuilder.Append("Дата начала неправильная. ");
                }

                int checkedPlannedDuration = 0;
                if (!Int32.TryParse(obj.plannedDuration, out checkedPlannedDuration))
                {
                    errorMessageBuilder.Append("Планируемое время неправильное. ");
                }

                decimal checkedPlannedPrice = 0;
                if (!decimal.TryParse(obj.plannedPrice, out checkedPlannedPrice))
                {
                    errorMessageBuilder.Append("Планируемая стоимость неправильная. ");
                }

                Guid checkedStartPoint = new Guid();
                if (!Guid.TryParse(obj.startPoint, out checkedStartPoint))
                {
                    errorMessageBuilder.Append("Точка выдачи неправильная. ");
                }


                Guid checkedVel = new Guid();
                if (!Guid.TryParse(obj.vel, out checkedVel))
                {
                    errorMessageBuilder.Append("Велосипед неправильный. ");
                }


                Guid checkedKlient = new Guid();
                if (!Guid.TryParse(obj.klient, out checkedKlient))
                {
                    errorMessageBuilder.Append("Клиент неправильный. ");
                }

                Guid checkedEmployee = new Guid();
                if (!Guid.TryParse(obj.employee, out checkedEmployee))
                {
                    errorMessageBuilder.Append("Прокатчик неправильный. ");
                }

                if (errorMessageBuilder.Length != 0)
                {
                    throw new Exception(errorMessageBuilder.ToString());
                }

                //Заполнение объекта для сохранения.

                var storedObject = new IIS.Прокат_велосипедов_2.ПрокатВелосипеда
                {
                    ДатаНачала           = checkedStartDate,
                    Велосипед            = PKHelper.CreateDataObject <Велосипед>(checkedVel),
                    ПлановаяСтоимость    = checkedPlannedPrice,
                    ПлановаяДлительность = checkedPlannedDuration,
                    ТочкаВыдачи          = PKHelper.CreateDataObject <ТочкаПроката>(checkedStartPoint),
                    ТочкаСдачи           = null,
                    Прокатчик            = PKHelper.CreateDataObject <Сотрудник>(checkedEmployee),
                    Клиент = PKHelper.CreateDataObject <Клиент>(checkedKlient),
                    ФактическаяДатаСдачи = null,
                    ФактическаяСтоимость = 0
                };

                //Сохранение и прочее
                var ds = DataServiceProvider.DataService;
                ds.UpdateObject(storedObject);
                var loadedVel = new Велосипед {
                    __PrimaryKey = checkedVel
                };
                ds.LoadObject(loadedVel);
                string uLogin = ICSSoft.Services.CurrentUserService.CurrentUser.Login;
                LogService.LogInfo($"Пользователь {uLogin} совершил выдачу велосипеда {loadedVel.Номер.ToString()} ");

                return(Json <object>(new { result = "sucess" }));
            }
            catch (System.Exception e)
            {
                return(Json <object>(new { result = "error", errorMessage = e.Message }));
            }
        }