/// <summary>
        /// <para>Submits all changes in the context and returns IResponse</para>
        /// </summary>
        public IResponse <int> SaveChangesResponse()
        {
            try
            {
                var readonlyValidationResponse = ValidateReadonlyModels();
                if (!readonlyValidationResponse.Success)
                {
                    return(ResponseFactory <int> .Convert(readonlyValidationResponse));
                }

                var save = Context.SaveChanges();
                return(ResponseFactory <int> .Ok(save));
            }
            //TODO: Replace this a proper exception to extract error detail
            //catch (DbEntityValidationException ex)
            //{
            //    var errorMessages = ex.EntityValidationErrors
            //        .SelectMany(x => x.ValidationErrors)
            //        .Select(x => x.ErrorMessage);

            //    return ResponseFactory<int>.Exception(ex, errorMessages.ToList());
            //}
            catch (Exception ex)
            {
                return(ResponseFactory <int> .Exception(ex));
            }
        }
        /// <summary>
        /// <para>Submits all changes in the context and returns IResponse</para>
        /// </summary>
        public async Task <IResponse <int> > SaveChangesResponseAsync(CancellationToken cancellationToken = default)
        {
            try
            {
                //Check if any readonly entities are modified
                var readonlyValidationResponse = ValidateReadonlyModels();
                if (!readonlyValidationResponse.Success)
                {
                    return(ResponseFactory <int> .Convert(readonlyValidationResponse));
                }

                var save = await Context.SaveChangesAsync(cancellationToken);

                return(ResponseFactory <int> .Ok(save));
            }
            //TODO: Replace this a proper exception to extract error detail
            //catch (DbEntityValidationException ex)
            //{
            //    var errorMessages = ex.EntityValidationErrors
            //        .SelectMany(x => x.ValidationErrors)
            //        .Select(x => x.ErrorMessage);

            //    return ResponseFactory<int>.Exception(ex, errorMessages.ToList());
            //}
            catch (Exception ex)
            {
                return(ResponseFactory <int> .Exception(ex));
            }
        }
        public void Response_Error_Convert()
        {
            var errorResponse = ResponseFactory.Convert(null);

            Assert.IsFalse(errorResponse.Success);
            Assert.AreEqual(ResponseStatus.NotFound, errorResponse.Status);
        }
예제 #4
0
        /// <summary>
        /// <para>Submits all changes in the context and returns IResponse</para>
        /// </summary>
        public IResponse <int> SaveChangesResponse()
        {
            try
            {
                var readonlyValidationResponse = ValidateReadonlyModels();
                if (!readonlyValidationResponse.Success)
                {
                    return(ResponseFactory <int> .Convert(readonlyValidationResponse));
                }

                var save = Context.SaveChanges();
                return(ResponseFactory <int> .Ok(save));
            }
            catch (DbEntityValidationException ex)
            {
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);

                return(ResponseFactory <int> .Exception(ex, errorMessages.ToList()));
            }
            catch (Exception ex)
            {
                return(ResponseFactory <int> .Exception(ex));
            }
        }
예제 #5
0
        /// <summary>
        /// <para>Submits all changes in the context and returns IResponse</para>
        /// </summary>
        public async Task <IResponse <int> > SaveChangesResponseAsync(CancellationToken cancellationToken)
        {
            try
            {
                //Check if any readonly entities are modified
                var readonlyValidationResponse = ValidateReadonlyModels();
                if (!readonlyValidationResponse.Success)
                {
                    return(ResponseFactory <int> .Convert(readonlyValidationResponse));
                }

                var save = await Context.SaveChangesAsync(cancellationToken);

                return(ResponseFactory <int> .Ok(save));
            }
            catch (DbEntityValidationException ex)
            {
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);

                return(ResponseFactory <int> .Exception(ex, errorMessages.ToList()));
            }
            catch (Exception ex)
            {
                return(ResponseFactory <int> .Exception(ex));
            }
        }
        public void Response_Error_Converted_Response_Should_Be_Same()
        {
            var errorResponse     = ResponseFactory.Ok();
            var convertedResponse = ResponseFactory.Convert(errorResponse);

            Assert.AreEqual(errorResponse.Status, convertedResponse.Status);
            Assert.AreEqual(errorResponse.Success, convertedResponse.Success);
            Assert.AreEqual(errorResponse.Exception, convertedResponse.Exception);
        }
        public void Response_Error_Converted_Response_Should_Be_Same_With_Value()
        {
            var errorResponse = ResponseFactory <int> .Ok(55);

            var convertedResponse = ResponseFactory <int> .Convert(errorResponse);

            Assert.AreEqual(errorResponse.Status, convertedResponse.Status, "Status is not same");
            Assert.AreEqual(errorResponse.Success, convertedResponse.Success, "Success is not same");
            Assert.AreEqual(errorResponse.Exception, convertedResponse.Exception, "Exceptionsd are not same");
            Assert.AreEqual(errorResponse.Value, convertedResponse.Value, "Values are not same");
        }