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))); }
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);; }
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); }
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); }
public WeekTemplateDTO(WeekTemplate weekTemplate) : base(weekTemplate) { this.DepartmentKey = weekTemplate.DepartmentKey; this.Id = weekTemplate.Id; }
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(); }