Changeset 6165fd0 for src/FinkiChattery


Ignore:
Timestamp:
11/09/21 17:06:21 (3 years ago)
Author:
Стојков Марко <mst@…>
Branches:
dev
Children:
e071d30
Parents:
53bebc0
Message:

Delete answer and answer response

Location:
src/FinkiChattery
Files:
4 added
8 edited

Legend:

Unmodified
Added
Removed
  • src/FinkiChattery/FinkiChattery.Api/Controllers/v1/AnswerResponsesController.cs

    r53bebc0 r6165fd0  
    3939            return Ok(answerResponse.ToAnswerResponseQuestionStateResponse());
    4040        }
     41
     42        [HttpDelete("{answerResponseUid:Guid}")]
     43        [Authorize(AuthenticationSchemes = IdentityServerAuthenticationDefaults.AuthenticationScheme, Policy = AuthenticationPolicy.Student)]
     44        public async Task<IActionResult> DeleteAnswerResponse([FromRoute] Guid questionUid, [FromRoute] Guid answerUid, [FromRoute] Guid answerResponseUid)
     45        {
     46            var uid = await MediatorService.SendAsync(new DeleteAnswerResponseCommand(questionUid, answerUid, answerResponseUid));
     47            return Ok(uid);
     48        }
    4149    }
    4250}
  • src/FinkiChattery/FinkiChattery.Api/Controllers/v1/AnswersController.cs

    r53bebc0 r6165fd0  
    4040        }
    4141
     42        [HttpDelete("{answerUid:Guid}")]
     43        [Authorize(AuthenticationSchemes = IdentityServerAuthenticationDefaults.AuthenticationScheme, Policy = AuthenticationPolicy.Student)]
     44        public async Task<IActionResult> DeleteAnswer([FromRoute] Guid questionUid, [FromRoute] Guid answerUid)
     45        {
     46            var uid = await MediatorService.SendAsync(new DeleteAnswerCommand(questionUid, answerUid));
     47            return Ok(uid);
     48        }
     49
    4250        [HttpPut("{answerUid:Guid}/correct")]
    4351        [Authorize(AuthenticationSchemes = IdentityServerAuthenticationDefaults.AuthenticationScheme, Policy = AuthenticationPolicy.Student)]
  • src/FinkiChattery/FinkiChattery.Database/dbo/Tables/AnswerResponse/AnswerResponse.sql

    r53bebc0 r6165fd0  
    77    [CreatedOn] SMALLDATETIME    NOT NULL,
    88    CONSTRAINT [PK_AnswerResponse] PRIMARY KEY CLUSTERED ([Id] ASC),
    9     CONSTRAINT [FK_AnswerResponse_Answer_AnswerFk] FOREIGN KEY ([AnswerFk]) REFERENCES [dbo].[Answer] ([Id]),
     9    CONSTRAINT [FK_AnswerResponse_Answer_AnswerFk] FOREIGN KEY ([AnswerFk]) REFERENCES [dbo].[Answer] ([Id]) ON DELETE CASCADE,
    1010    CONSTRAINT [FK_AnswerResponse_Student_AnswerFk] FOREIGN KEY ([StudentFk]) REFERENCES [dbo].[Student] ([Id])
    1111);
  • src/FinkiChattery/FinkiChattery.Database/dbo/Tables/Vote/Vote.sql

    r53bebc0 r6165fd0  
    66    [VoteType] TINYINT           NOT NULL,
    77    CONSTRAINT [PK_Vote] PRIMARY KEY CLUSTERED ([Id] ASC),
    8     CONSTRAINT [FK_Vote_Answer_AnswerFk] FOREIGN KEY ([AnswerFk]) REFERENCES [dbo].[Answer] ([Id]),
     8    CONSTRAINT [FK_Vote_Answer_AnswerFk] FOREIGN KEY ([AnswerFk]) REFERENCES [dbo].[Answer] ([Id]) ON DELETE CASCADE,
    99    CONSTRAINT [FK_Vote_Student_StudentFk] FOREIGN KEY ([StudentFk]) REFERENCES [dbo].[Student] ([Id])
    1010);
  • src/FinkiChattery/FinkiChattery.Persistence/Configurations/AnswerResponseConfig.cs

    r53bebc0 r6165fd0  
    2727            builder.Property(x => x.CreatedOn).HasColumnName(@"CreatedOn").HasColumnType("smalldatetime").IsRequired();
    2828
    29             builder.HasOne(x => x.Answer).WithMany(x => x.AnswerResponses).HasForeignKey(x => x.AnswerFk).OnDelete(DeleteBehavior.Restrict);
     29            builder.HasOne(x => x.Answer).WithMany(x => x.AnswerResponses).HasForeignKey(x => x.AnswerFk).OnDelete(DeleteBehavior.Cascade);
    3030            builder.HasOne(x => x.Student).WithMany().HasForeignKey(x => x.StudentFk).OnDelete(DeleteBehavior.Restrict);
    3131        }
  • src/FinkiChattery/FinkiChattery.Persistence/Configurations/VoteConfig.cs

    r53bebc0 r6165fd0  
    2222
    2323            builder.HasOne(x => x.Student).WithMany().HasForeignKey(x => x.StudentFk).OnDelete(DeleteBehavior.Restrict);
    24             builder.HasOne(x => x.Answer).WithMany(x => x.Votes).HasForeignKey(x => x.AnswerFk).OnDelete(DeleteBehavior.Restrict);
     24            builder.HasOne(x => x.Answer).WithMany(x => x.Votes).HasForeignKey(x => x.AnswerFk).OnDelete(DeleteBehavior.Cascade);
    2525        }
    2626    }
  • src/FinkiChattery/FinkiChattery.Persistence/Repositories/Base/IRepository.cs

    r53bebc0 r6165fd0  
    1313        Task<T> GetByIdAsync(int id);
    1414
     15        void Delete(T entity);
     16
    1517        void Add(T entity);
    1618    }
  • src/FinkiChattery/FinkiChattery.Persistence/Repositories/Base/Repository.cs

    r53bebc0 r6165fd0  
    3838            return await All().FirstOrDefaultAsync(f => f.Uid == uid);
    3939        }
     40
     41        public void Delete(T entity)
     42        {
     43            DbSet.Remove(entity);
     44        }
    4045    }
    4146}
Note: See TracChangeset for help on using the changeset viewer.