예제 #1
0
        private async Task <(LibraryBookApiModel libraryBook, LibraryUserApiModel libraryuser)> GetBookAndUser(string libraryBookCode, string libraryUserCode)
        {
            LibraryBookApiModel libraryBook = null;
            LibraryUserApiModel libraryuser = null;

            var(libraryBookResponse, libraryUserResponse) = await TaskEx.WhenAllTwo(_libraryBookClient.GetLibraryBookByLibraryBookCode(libraryBookCode), _libraryUserClient.GetLibraryUserByLibraryUserCode(libraryUserCode));

            if (libraryBookResponse.StatusIsSuccessful)
            {
                libraryBook = libraryBookResponse.Data;
            }
            else
            {
                AddResponseErrorsToModelState(libraryBookResponse);
            }
            if (libraryUserResponse.StatusIsSuccessful)
            {
                libraryuser = libraryUserResponse.Data;
            }
            else
            {
                AddResponseErrorsToModelState(libraryUserResponse);
            }

            return(libraryBook : libraryBook, libraryuser : libraryuser);
        }
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "insertlibraryuser")] HttpRequest req, ILogger log)
        {
            try
            {
                var result = _tokenProvider.ValidateToken(req);

                if (result.Status == AccessTokenStatus.Valid)
                {
                    log.LogInformation($"Request received for {result.Principal.Identity.Name}.");
                }
                else
                {
                    return(new UnauthorizedResult());
                }

                string requestBody        = await new StreamReader(req.Body).ReadToEndAsync();
                LibraryUserApiModel model = JsonConvert.DeserializeObject <LibraryUserApiModel>(requestBody);

                if (model == null)
                {
                    return(new BadRequestObjectResult("Please pass LibraryUserApiModel in the request body"));
                }

                int    retVal          = 0;
                string libraryUserCode = string.Empty;
                if (model != null)
                {
                    model.CreatedBy    = _tokenProvider.User;
                    model.DateCreated  = DateTime.Now;
                    model.ModifiedBy   = _tokenProvider.User;
                    model.DateModified = DateTime.Now;

                    retVal = _libraryUserWebApiManager.InsertLibraryUser(model, out libraryUserCode);
                }

                if (retVal < 1)
                {
                    return(new BadRequestObjectResult("Failed to insert record"));
                }

                return((ActionResult) new OkObjectResult(new ContentResult
                {
                    Content = libraryUserCode,
                    ContentType = "text/plain",
                    StatusCode = 200
                }));
            }
            catch (Exception ex)
            {
                log.LogError($"Caught exception: {ex.Message}");
                return(new BadRequestObjectResult(ex.Message));
            }
        }
예제 #3
0
        /// <summary>
        /// Get a LibraryUser by it's id
        /// </summary>
        /// <param name="LibraryUserCode"></param>
        /// <returns>The <see cref="LibraryUserApiModel"/> </returns>
        public LibraryUserApiModel GetLibraryUserByLibraryUserCode(string LibraryUserCode)
        {
            LibraryUserApiModel LibraryUserApiModel = null;

            using (var connection = this.OpenConnection())
            {
                LibraryUserApiModel = connection.Query <LibraryUserApiModel>(@"SELECT C.LibraryUserCode, C.Title, C.Name, C.PhoneNumber, C.MobilePhoneNumber, C.Email, C.AlternativePhoneNumber, C.AlternativeEmail, 
                         C.AddressLine1, C.AddressLine2, C.AddressLine3, C.City, C.County, C.Country, C.Postcode, 
                         C.GDPRInformedDate,C.GDPRInformedBy,C.GDPRHowInformed,C.GDPRNotes,C.LibraryUserByPost,C.LibraryUserByPostConsentDate,C.LibraryUserByEmail,
                         C.LibraryUserByEmailConsentDate,C.LibraryUserByPhone,C.LibraryUserByPhoneConsentDate,C.LibraryUserBySMS,C.LibraryUserBySMSConsentDate,
                         C.DateCreated, C.CreatedBy, C.DateModified, C.ModifiedBy
                         FROM LibraryUser C
	                     WHERE C.LibraryUserCode = @LibraryUserCode"    , new { LibraryUserCode }).SingleOrDefault();
            }

            return(LibraryUserApiModel);
        }
예제 #4
0
 public static LibraryUserViewModel CreateLibraryUserViewModel(LibraryUserApiModel apiModel)
 {
     return(new LibraryUserViewModel()
     {
         LibraryUserCode = apiModel.LibraryUserCode,
         Title = apiModel.Title,
         Name = apiModel.Name,
         PhoneNumber = apiModel.PhoneNumber,
         MobilePhoneNumber = apiModel.MobilePhoneNumber,
         Email = apiModel.Email,
         AlternativePhoneNumber = apiModel.AlternativePhoneNumber,
         AlternativeEmail = apiModel.AlternativeEmail,
         AddressLine1 = apiModel.AddressLine1,
         AddressLine2 = apiModel.AddressLine2,
         AddressLine3 = apiModel.AddressLine3,
         City = apiModel.City,
         County = apiModel.County,
         Country = apiModel.Country,
         Postcode = apiModel.Postcode,
         GDPRInformedBy = apiModel.GDPRInformedBy,
         GDPRHowInformed = apiModel.GDPRHowInformed,
         GDPRInformedDate = (apiModel.GDPRInformedDate != null) ? apiModel.GDPRInformedDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         StrInformedDate = (apiModel.GDPRInformedDate != null) ? apiModel.GDPRInformedDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         GDPRNotes = apiModel.GDPRNotes,
         LibraryUserByEmail = apiModel.LibraryUserByEmail,
         LibraryUserByEmailConsentDate = (apiModel.LibraryUserByEmailConsentDate != null) ? apiModel.LibraryUserByEmailConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         StrContactByEmailConsentDate = (apiModel.LibraryUserByEmailConsentDate != null) ? apiModel.LibraryUserByEmailConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         LibraryUserByPhone = apiModel.LibraryUserByPhone,
         LibraryUserByPhoneConsentDate = (apiModel.LibraryUserByPhoneConsentDate != null) ? apiModel.LibraryUserByPhoneConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         StrContactByPhoneConsentDate = (apiModel.LibraryUserByPhoneConsentDate != null) ? apiModel.LibraryUserByPhoneConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         LibraryUserByPost = apiModel.LibraryUserByPost,
         LibraryUserByPostConsentDate = (apiModel.LibraryUserByPostConsentDate != null) ? apiModel.LibraryUserByPostConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         StrContactByPostConsentDate = (apiModel.LibraryUserByPostConsentDate != null) ? apiModel.LibraryUserByPostConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         LibraryUserBySMS = apiModel.LibraryUserBySMS,
         LibraryUserBySMSConsentDate = (apiModel.LibraryUserBySMSConsentDate != null) ? apiModel.LibraryUserBySMSConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         StrContactBySMSConsentDate = (apiModel.LibraryUserBySMSConsentDate != null) ? apiModel.LibraryUserBySMSConsentDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
         CreatedBy = apiModel.CreatedBy,
         DateCreated = apiModel.DateCreated,
         ModifiedBy = apiModel.ModifiedBy,
         DateModified = apiModel.DateModified
     });
 }
        public IActionResult Update([FromBody] LibraryUserApiModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            model.ModifiedBy = GetCurrentUser();

            var result = _libraryUserWebApiManager.UpdateLibraryUser(model);

            switch (result)
            {
            case 1:
                return(Ok());

            default:
                ModelState.AddModelError(string.Empty, "Unable to Update user");
                break;
            }

            return(BadRequest(ModelState));
        }
        public IActionResult Insert([FromBody] LibraryUserApiModel model)
        {
            int result          = 0;
            var libraryUserCode = "";

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (model != null)
            {
                model.CreatedBy    = GetCurrentUser();
                model.DateCreated  = DateTime.Now;
                model.ModifiedBy   = GetCurrentUser();
                model.DateModified = DateTime.Now;

                result = _libraryUserWebApiManager.InsertLibraryUser(model, out libraryUserCode);
            }

            switch (result)
            {
            case 1:
                return(new ContentResult
                {
                    Content = libraryUserCode,
                    ContentType = "text/plain",
                    StatusCode = 200
                });

            default:
                ModelState.AddModelError(string.Empty, "Failed to insert record");
                break;
            }

            return(BadRequest(ModelState));
        }
 /// <summary>
 /// Updare LibraryUser
 /// </summary>
 /// <param name="libraryUser"></param>
 /// <returns>The<see cref="int"/> </returns>
 public int UpdateLibraryUser(LibraryUserApiModel libraryUser, TransactionParam transactionParam = null)
 {
     return(this._libraryUserRepository.UpdateLibraryUser(libraryUser, transactionParam));
 }
 /// <summary>
 /// Insert LibraryUser
 /// </summary>
 /// <param name="libraryUser"></param>
 /// <param name="libraryUserCode"></param>
 /// <returns>The<see cref="int"/> </returns>
 public int InsertLibraryUser(LibraryUserApiModel libraryUser, out string libraryUserCode, TransactionParam transactionParam = null)
 {
     return(this._libraryUserRepository.InsertLibraryUser(libraryUser, out libraryUserCode, transactionParam));
 }
예제 #9
0
        /// <summary>
        /// Updare LibraryUser
        /// </summary>
        /// <param name="LibraryUser"></param>
        /// <returns>The<see cref="int"/> </returns>
        public int UpdateLibraryUser(LibraryUserApiModel LibraryUser, TransactionParam transactionParam = null)
        {
            var parameters = new DynamicParameters();

            parameters.Add(name: "LibraryUserCode", value: LibraryUser.LibraryUserCode);
            parameters.Add(name: "title", value: LibraryUser.Title);
            parameters.Add(name: "name", value: LibraryUser.Name);
            parameters.Add(name: "phoneNumber", value: LibraryUser.PhoneNumber);
            parameters.Add(name: "mobilePhoneNumber", value: LibraryUser.MobilePhoneNumber);
            parameters.Add(name: "email", value: LibraryUser.Email);
            parameters.Add(name: "alternativePhoneNumber", value: LibraryUser.AlternativePhoneNumber);
            parameters.Add(name: "alternativeEmail", value: LibraryUser.AlternativeEmail);
            parameters.Add(name: "addressLine1", value: LibraryUser.AddressLine1);
            parameters.Add(name: "addressLine2", value: LibraryUser.AddressLine2);
            parameters.Add(name: "addressLine3", value: LibraryUser.AddressLine3);
            parameters.Add(name: "city", value: LibraryUser.City);
            parameters.Add(name: "county", value: LibraryUser.County);
            parameters.Add(name: "country", value: LibraryUser.Country);
            parameters.Add(name: "postcode", value: LibraryUser.Postcode);
            parameters.Add(name: "GDPRInformedDate", value: LibraryUser.GDPRInformedDate);
            parameters.Add(name: "GDPRInformedBy", value: LibraryUser.GDPRInformedBy);
            parameters.Add(name: "GDPRHowInformed", value: LibraryUser.GDPRHowInformed);
            parameters.Add(name: "GDPRNotes", value: LibraryUser.GDPRNotes);
            parameters.Add(name: "LibraryUserByPost", value: LibraryUser.LibraryUserByPost);
            parameters.Add(name: "LibraryUserByPostConsentDate", value: LibraryUser.LibraryUserByPostConsentDate);
            parameters.Add(name: "LibraryUserByEmail", value: LibraryUser.LibraryUserByEmail);
            parameters.Add(name: "LibraryUserByEmailConsentDate", value: LibraryUser.LibraryUserByEmailConsentDate);
            parameters.Add(name: "LibraryUserByPhone", value: LibraryUser.LibraryUserByPhone);
            parameters.Add(name: "LibraryUserByPhoneConsentDate", value: LibraryUser.LibraryUserByPhoneConsentDate);
            parameters.Add(name: "LibraryUserBySMS", value: LibraryUser.LibraryUserBySMS);
            parameters.Add(name: "LibraryUserBySMSConsentDate", value: LibraryUser.LibraryUserBySMSConsentDate);
            parameters.Add(name: "modifiedBy", value: LibraryUser.ModifiedBy);
            parameters.Add(name: "modifiedDate", value: DateTime.Now);

            const string sql = @"UPDATE LibraryUser
			SET 
               Title = @title
              ,Name = @name
              ,PhoneNumber = @phoneNumber
              ,MobilePhoneNumber = @mobilePhoneNumber
              ,Email = @email
              ,AlternativePhoneNumber = @alternativePhoneNumber
              ,AlternativeEmail = @alternativeEmail
              ,AddressLine1 = @addressLine1
              ,AddressLine2 = @addressLine2
              ,AddressLine3 = @addressLine3
              ,City = @city
              ,County = @county
              ,Country = @country
              ,Postcode = @postcode
              ,GDPRInformedDate = @GDPRInformedDate
              ,GDPRInformedBy = @GDPRInformedBy
              ,GDPRHowInformed = @GDPRHowInformed
              ,GDPRNotes = @GDPRNotes
              ,LibraryUserByPost = @LibraryUserByPost
              ,LibraryUserByPostConsentDate = @LibraryUserByPostConsentDate
              ,LibraryUserByEmail = @LibraryUserByEmail
              ,LibraryUserByEmailConsentDate = @LibraryUserByEmailConsentDate
              ,LibraryUserByPhone = @LibraryUserByPhone
              ,LibraryUserByPhoneConsentDate = @LibraryUserByPhoneConsentDate
              ,LibraryUserBySMS = @LibraryUserBySMS
              ,LibraryUserBySMSConsentDate = @LibraryUserBySMSConsentDate
              ,ModifiedBy = @modifiedBy
			  ,DateModified = @modifiedDate
			    WHERE LibraryUserCode = @LibraryUserCode"            ;

            LibraryUser.DateModified = DateTime.Now;
            int rowaffected = 0;

            if (transactionParam != null)
            {
                rowaffected = transactionParam.Connection.Execute(
                    sql,
                    param: parameters,
                    commandType: CommandType.Text,
                    transaction: transactionParam.Transaction);
            }
            else
            {
                using (var connection = this.OpenConnection())
                {
                    rowaffected = connection.Execute(
                        sql,
                        param: parameters,
                        commandType: CommandType.Text);
                }
            }

            return(rowaffected);
        }
예제 #10
0
        /// <summary>
        /// Insert LibraryUser
        /// </summary>
        /// <param name="LibraryUser"></param>
        /// <param name="LibraryUserCode"></param>
        /// <returns>The<see cref="int"/> </returns>
        public virtual int InsertLibraryUser(LibraryUserApiModel LibraryUser, out string LibraryUserCode, TransactionParam transactionParam = null)
        {
            LibraryUserCode             = _randomKeyGenerator.GetUniqueKey(9);
            LibraryUser.LibraryUserCode = LibraryUserCode;

            var parameters = new DynamicParameters();

            parameters.Add(name: "LibraryUserCode", value: LibraryUserCode);
            parameters.Add(name: "title", value: LibraryUser.Title);
            parameters.Add(name: "name", value: LibraryUser.Name);
            parameters.Add(name: "phoneNumber", value: LibraryUser.PhoneNumber);
            parameters.Add(name: "mobilePhoneNumber", value: LibraryUser.MobilePhoneNumber);
            parameters.Add(name: "email", value: LibraryUser.Email);

            parameters.Add(name: "alternativePhoneNumber", value: LibraryUser.AlternativePhoneNumber);
            parameters.Add(name: "alternativeEmail", value: LibraryUser.AlternativeEmail);

            parameters.Add(name: "addressLine1", value: LibraryUser.AddressLine1);
            parameters.Add(name: "addressLine2", value: LibraryUser.AddressLine2);
            parameters.Add(name: "addressLine3", value: LibraryUser.AddressLine3);
            parameters.Add(name: "city", value: LibraryUser.City);
            parameters.Add(name: "county", value: LibraryUser.County);
            parameters.Add(name: "country", value: LibraryUser.Country);
            parameters.Add(name: "postcode", value: LibraryUser.Postcode);

            parameters.Add(name: "GDPRInformedDate", value: LibraryUser.GDPRInformedDate);
            parameters.Add(name: "GDPRInformedBy", value: LibraryUser.GDPRInformedBy);
            parameters.Add(name: "GDPRHowInformed", value: LibraryUser.GDPRHowInformed);
            parameters.Add(name: "GDPRNotes", value: LibraryUser.GDPRNotes);
            parameters.Add(name: "LibraryUserByPost", value: LibraryUser.LibraryUserByPost);
            parameters.Add(name: "LibraryUserByPostConsentDate", value: LibraryUser.LibraryUserByPostConsentDate);
            parameters.Add(name: "LibraryUserByEmail", value: LibraryUser.LibraryUserByEmail);
            parameters.Add(name: "LibraryUserByEmailConsentDate", value: LibraryUser.LibraryUserByEmailConsentDate);
            parameters.Add(name: "LibraryUserByPhone", value: LibraryUser.LibraryUserByPhone);
            parameters.Add(name: "LibraryUserByPhoneConsentDate", value: LibraryUser.LibraryUserByPhoneConsentDate);
            parameters.Add(name: "LibraryUserBySMS", value: LibraryUser.LibraryUserBySMS);
            parameters.Add(name: "LibraryUserBySMSConsentDate", value: LibraryUser.LibraryUserBySMSConsentDate);

            parameters.Add(name: "createdBy", value: LibraryUser.CreatedBy);
            parameters.Add(name: "dateCreated", value: LibraryUser.DateCreated);
            parameters.Add(name: "modifiedBy", value: LibraryUser.ModifiedBy);
            parameters.Add(name: "dateModified", value: LibraryUser.DateModified);

            int rowaffected = 0;

            string sql = @"INSERT INTO LibraryUser (
				LibraryUserCode,Title,Name,PhoneNumber,MobilePhoneNumber,Email, AlternativePhoneNumber, AlternativeEmail,
                AddressLine1, AddressLine2, AddressLine3, City, County, Country, Postcode,
                GDPRInformedDate,GDPRInformedBy,GDPRHowInformed,GDPRNotes,LibraryUserByPost,LibraryUserByPostConsentDate,LibraryUserByEmail,
                LibraryUserByEmailConsentDate,LibraryUserByPhone,LibraryUserByPhoneConsentDate,LibraryUserBySMS,LibraryUserBySMSConsentDate,
                CreatedBy, DateCreated, ModifiedBy, DateModified
				)
			VALUES(
				@LibraryUserCode, @title, @name, @phoneNumber, @mobilePhoneNumber, @email, @alternativePhoneNumber, @alternativeEmail,
                @addressLine1, @addressLine2, @addressLine3, @city, @county, @country, @postcode,
                @GDPRInformedDate,@GDPRInformedBy,@GDPRHowInformed,@GDPRNotes,@LibraryUserByPost,@LibraryUserByPostConsentDate,@LibraryUserByEmail,
                @LibraryUserByEmailConsentDate,@LibraryUserByPhone,@LibraryUserByPhoneConsentDate,@LibraryUserBySMS,@LibraryUserBySMSConsentDate,
				@createdBy, NOW(), @modifiedBy, NOW())"                ;


            if (transactionParam != null)
            {
                rowaffected = transactionParam.Connection.Execute(
                    sql,
                    param: parameters,
                    commandType: CommandType.Text,
                    transaction: transactionParam.Transaction);
            }
            else
            {
                using (var connection = this.OpenConnection())
                {
                    rowaffected = connection.Execute(
                        sql,
                        param: parameters,
                        commandType: CommandType.Text);
                }
            }

            return(rowaffected);
        }
 public LibraryBookStatusApiModel GetApiModel(LibraryBookApiModel libraryBook, LibraryUserApiModel libraryuser)
 {
     return(new LibraryBookStatusApiModel()
     {
         LibraryBookStatusCode = this.LibraryBookStatusCode,
         DateCheckedOut = Extension.ConvertToDateTime(this.DateCheckedOut),
         DateReturned = Extension.ConvertToDateTime(this.DateReturned),
         CreatedBy = this.CreatedBy,
         DateCreated = this.DateCreated,
         ModifiedBy = this.ModifiedBy,
         DateModified = this.DateModified,
         LibraryBook = libraryBook,
         LibraryUser = libraryuser
     });
 }
        public async Task <BoolResponse> Update(LibraryUserApiModel apiModel)
        {
            var createBranchResponse = await PutEncodedContentWithSimpleBoolResponse <BoolResponse, LibraryUserApiModel>(_apiUrl /*+ APIConstants.Update*/, apiModel);

            return(createBranchResponse);
        }
        public async Task <IntResponse> Insert(LibraryUserApiModel apiModel)
        {
            var createBranchResponse = await PostEncodedContentWithSimpleResponse <IntResponse, LibraryUserApiModel>(_apiUrl /*+ APIConstants.Insert*/, apiModel);

            return(createBranchResponse);
        }