示例#1
0
        public async Task <Response <WeekTemplateDTO> > CreateWeekTemplate([FromBody] WeekTemplateDTO templateDto)
        {
            var user = await _giraf.LoadBasicUserDataAsync(HttpContext.User);

            if (!await _authentication.HasTemplateAccess(user))
            {
                return(new ErrorResponse <WeekTemplateDTO>(ErrorCode.NotAuthorized));
            }

            if (templateDto == null)
            {
                return(new ErrorResponse <WeekTemplateDTO>(ErrorCode.MissingProperties));
            }

            Department department = _giraf._context.Departments.FirstOrDefault(d => d.Key == user.DepartmentKey);

            if (department == null)
            {
                return(new ErrorResponse <WeekTemplateDTO>(ErrorCode.UserMustBeInDepartment));
            }

            var newTemplate = new WeekTemplate(department);

            var errorCode = await SetWeekFromDTO(templateDto, newTemplate, _giraf);

            if (errorCode != null)
            {
                return(new ErrorResponse <WeekTemplateDTO>(errorCode.ErrorCode, errorCode.ErrorProperties));
            }

            _giraf._context.WeekTemplates.Add(newTemplate);
            await _giraf._context.SaveChangesAsync();

            return(new Response <WeekTemplateDTO>(new WeekTemplateDTO(newTemplate)));
        }
示例#2
0
        public void UpdateWeekTemplate_AsGuadianOfOtherDepartment_NotAuthorised()
        {
            var wtc = InitializeTest();

            _testContext.MockUserManager.MockLoginAsUser(_testContext.MockUsers[UserGuardian2Department2]);
            var template = new WeekTemplate(_testContext.MockDepartments[MockDepartment2]);

            // modify name
            var templateDTO = new WeekTemplateDTO(template)
            {
                Name = "Test hest"
            };

            var res = wtc.UpdateWeekTemplate(_testContext.MockWeekTemplates[Template1].Id, templateDTO).Result;

            Assert.Equal(ErrorCode.NotAuthorized, res.ErrorCode);;
        }
示例#3
0
        public void CreateWeekTemplate_NoDays_InvalidAmountOfWeekdays()
        {
            var wtc = InitializeTest();

            _testContext.MockUserManager.MockLoginAsUser(_testContext.MockUsers[UserGuardian2Department2]);
            var template = new WeekTemplate(_testContext.MockDepartments[MockDepartment2]);

            // modify name
            var templateDTO = new WeekTemplateDTO(template)
            {
                Name = "Test Week"
            };

            var res = wtc.CreateWeekTemplate(templateDTO).Result;

            Assert.Equal(ErrorCode.InvalidAmountOfWeekdays, res.ErrorCode);
        }
示例#4
0
        public void UpdateWeekTemplate_NewTemplateValidDTO_Success()
        {
            var wtc = InitializeTest();

            _testContext.MockUserManager.MockLoginAsUser(_testContext.MockUsers[UserAdmin]);
            var template = new WeekTemplate(_testContext.MockDepartments[MockDepartment2]);

            // modify name
            var templateDTO = new WeekTemplateDTO(template)
            {
                Name = "Test Week",
                Days = _testContext.MockWeekTemplates[Template2].Weekdays.Select(d => new WeekdayDTO(d)).ToList()
            };

            var res = wtc.UpdateWeekTemplate(_testContext.MockWeekTemplates[Template1].Id, templateDTO).Result;

            Assert.True(res.Success);
            Assert.Equal("Test Week", res.Data.Name);
        }
示例#5
0
 public WeekTemplateDTO(WeekTemplate weekTemplate) : base(weekTemplate)
 {
     this.DepartmentKey = weekTemplate.DepartmentKey;
     this.Id            = weekTemplate.Id;
 }
示例#6
0
        private static void AddSampleWeekTemplate(GirafDbContext context, IList <Pictogram> pictograms, IList <Department> departments)
        {
            Console.WriteLine("Adding templates");
            var weekdays = new Weekday[]
            {
                new Weekday(Days.Monday,
                            new List <Pictogram> {
                    pictograms[0], pictograms[1], pictograms[2], pictograms[3], pictograms[4]
                },
                            new List <ActivityState> {
                    Active, Active, Active, Active, Active,
                }),

                new Weekday(Days.Tuesday,
                            new List <Pictogram> {
                    pictograms[5], pictograms[6], pictograms[7], pictograms[8]
                },
                            new List <ActivityState> {
                    Active, Active, Active, Active,
                }),

                new Weekday(Days.Wednesday,
                            new List <Pictogram> {
                    pictograms[9], pictograms[10], pictograms[11], pictograms[12], pictograms[13]
                },
                            new List <ActivityState> {
                    Active, Active, Active, Active, Active,
                }),

                new Weekday(Days.Thursday,
                            new List <Pictogram> {
                    pictograms[8], pictograms[6], pictograms[7], pictograms[5]
                },
                            new List <ActivityState> {
                    Active, Active, Active, Active,
                }),

                new Weekday(Days.Friday,
                            new List <Pictogram> {
                    pictograms[0], pictograms[7]
                },
                            new List <ActivityState> {
                    Active, Active,
                }),

                new Weekday(Days.Saturday,
                            new List <Pictogram> {
                    pictograms[8], pictograms[5]
                },
                            new List <ActivityState> {
                    Active, Active,
                }),

                new Weekday(Days.Sunday,
                            new List <Pictogram> {
                    pictograms[3], pictograms[5]
                },
                            new List <ActivityState> {
                    Active, Active,
                })
            };

            var sampleTemplate = new WeekTemplate(departments[0]);

            sampleTemplate.Name      = "SkabelonUge";
            sampleTemplate.Thumbnail = pictograms[0];
            foreach (var day in weekdays)
            {
                context.Weekdays.Add(day);
                sampleTemplate.UpdateDay(day);
            }

            context.WeekTemplates.Add(sampleTemplate);
            context.SaveChanges();
        }