Example #1
0
        public int ConfirmSharePet(string token)
        {
            var request = new PetShareConfirmRequest {
                Token = Guid.Parse(token)
            };

            return(_petServiceClient.ConfirmSharePet(request));
        }
Example #2
0
        public async Task <int> ConfirmSharePetAsync(PetShareConfirmRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var records = await _petDataAccess.ConfirmSharePetAsync(request)
                          .ConfigureAwait(false);

            return(records);
        }
Example #3
0
        public async Task <int> ConfirmSharePetAsync(PetShareConfirmRequest request)
        {
            long records = 0;

            using (var dbConnection = _dbConnectionFactory.Open())
            {
                using (var trans = dbConnection.OpenTransaction(IsolationLevel.ReadCommitted))
                {
                    var requestRecord = await dbConnection.SingleAsync <OwnerSharedPetTableModel>(x => x.TokenCode == request.Token && !x.Used)
                                        .ConfigureAwait(false);

                    if (requestRecord != null)
                    {
                        var pet = await dbConnection.SingleAsync <PetTableModel>(x => x.Id == requestRecord.PetTableModelId)
                                  .ConfigureAwait(false);

                        var owner = await dbConnection.SingleAsync <OwnerTableModel>(x => x.Email == requestRecord.ToOwnerEmail)
                                    .ConfigureAwait(false);

                        var existSharedRecord = await dbConnection.SingleAsync <OwnerPetTableModel>(x => x.PetTableModelId == pet.Id && x.OwnerTableModelId == owner.Id)
                                                .ConfigureAwait(false);

                        if (existSharedRecord == null)
                        {
                            var ownerPetTable = GetNewOwnerPetTableModel(owner.Id, pet.Id, false);

                            records = await dbConnection.InsertAsync <OwnerPetTableModel>(ownerPetTable, selectIdentity : true)
                                      .ConfigureAwait(false);
                        }

                        await dbConnection.UpdateOnlyAsync(new OwnerSharedPetTableModel { Used = true }, x => x.Used, x => x.Id == requestRecord.Id)
                        .ConfigureAwait(false);

                        await dbConnection.UpdateOnlyAsync(new OwnerSharedPetTableModel { UsedOn = System.DateTime.Now }, x => x.UsedOn, x => x.Id == requestRecord.Id)
                        .ConfigureAwait(false);

                        trans.Commit();
                    }
                }
            }

            return((int)records);
        }
Example #4
0
        public int ConfirmSharePet(PetShareConfirmRequest request)
        {
            var response = _findMyPetClient.JsonClient().Put(request);

            return(response);
        }
Example #5
0
 public async Task <int> Put(PetShareConfirmRequest request)
 {
     return(await _petProvider.ConfirmSharePetAsync(request)
            .ConfigureAwait(false));
 }