예제 #1
0
        public async Task <MResultRequest <MTest_MainInfo> > GetByIdAsync(int Id)
        {
            try
            {
                MTest_MainInfoDb Test_MainInfoDb =
                    await
                    _context.Set <MTest_MainInfoDb>()
                    .Include(_ => _.Questions_ChoosingAnswerFromList)
                    .Include(_ => _.Questions_ChoosingAnswerFromList.Select(c => c.AnswerVariants))
                    .Include(_ => _.Questions_SetOrder)
                    .Include(_ => _.Questions_SetOrder.Select(c => c.AnswerVariants))
                    .Include(_ => _.User_TestAuthor)
                    .AsNoTracking()
                    .FirstOrDefaultAsync(_ => _.Id == Id)
                    .ConfigureAwait(false);

                if (Test_MainInfoDb == null)
                {
                    throw
                        new NullReferenceException();
                }

                return
                    (MResultRequest <MTest_MainInfo>
                     .Ok(_mapper.Map <MTest_MainInfo>(Test_MainInfoDb)));
            }
            catch (NullReferenceException)
            {
                return
                    ((MResultRequest <MTest_MainInfo>) MResultRequest <MTest_MainInfo>
                     .Fail <MTest_MainInfo>($@"There is no test with the specified Id: {Id} in the system."));
            }
        }
예제 #2
0
        public async Task <MResultRequest <MTest_MainInfo> > AddAsync(string User_TestAuthor_Id, MTest_MainInfo Test_MainInfo)
        {
            try
            {
                MTest_MainInfoDb Test_MainInfoDb =
                    _mapper.Map <MTest_MainInfoDb>(Test_MainInfo);

                Test_MainInfoDb.User_TestAuthorDb_Id = User_TestAuthor_Id;

                _context.Set <MTest_MainInfoDb>().Add(Test_MainInfoDb);

                await
                _context
                .SaveChangesAsync();

                return
                    (MResultRequest <MTest_MainInfo>
                     .Ok(_mapper.Map <MTest_MainInfo>(Test_MainInfo)));
            }
            catch (DbUpdateConcurrencyException e)
            {
                return
                    ((MResultRequest <MTest_MainInfo>) MResultRequest <MTest_MainInfo> .Fail <MTest_MainInfo>($"Cannot save model. {e.Message}"));
            }
            catch (DbUpdateException e)
            {
                return
                    ((MResultRequest <MTest_MainInfo>) MResultRequest <MTest_MainInfo> .Fail <MTest_MainInfo>($"Cannot save model. Duplicate field. {e.Message}"));
            }
            catch (DbEntityValidationException e)
            {
                return
                    ((MResultRequest <MTest_MainInfo>) MResultRequest <MTest_MainInfo> .Fail <MTest_MainInfo>($"Invalid model. {e.Message}"));
            }
        }
예제 #3
0
        public MResultRequest <MTest_MainInfo> Update(string User_TestAuthor_Id, MTest_MainInfo Test_MainInfo)
        {
            try
            {
                MTest_MainInfoDb Test_MainInfoDb =
                    _mapper.Map <MTest_MainInfoDb>(Test_MainInfo);

                Test_MainInfoDb.User_TestAuthorDb_Id = User_TestAuthor_Id;

                _context.Set <MTest_MainInfoDb>().Remove(
                    _context.Set <MTest_MainInfoDb>().Find(Test_MainInfo.Id));

                _context.Set <MTest_MainInfoDb>().Add(Test_MainInfoDb);

                _context.SaveChanges();

                return
                    (MResultRequest <MTest_MainInfo>
                     .Ok(_mapper.Map <MTest_MainInfo>(Test_MainInfoDb)));
            }
            catch (DbUpdateConcurrencyException e)
            {
                return
                    ((MResultRequest <MTest_MainInfo>) MResultRequest <MTest_MainInfo> .Fail <MTest_MainInfo>($"Cannot update model. {e.Message}"));
            }
            catch (DbUpdateException e)
            {
                return
                    ((MResultRequest <MTest_MainInfo>) MResultRequest <MTest_MainInfo> .Fail <MTest_MainInfo>($"Cannot update model. {e.Message}"));
            }
            catch (DbEntityValidationException e)
            {
                return
                    ((MResultRequest <MTest_MainInfo>) MResultRequest <MTest_MainInfo> .Fail <MTest_MainInfo>($"Cannot update model. {e.Message}"));
            }
        }