private MobicomRegisterResponse MobicomRegisterRequestOperation(MobicomRegisterRequest request) { Trace.WriteLine("Phone:" + request.Client.Phone + " Number:" + request.Payment.result); var response = new MobicomRegisterResponse(); response.Result.code = 1; response.Result.comment = ""; try { var initialRequest = LogRegisterRequest(request); if (request.Owner.id == null) { return(response); } var payment = _storage.Payments.SingleOrDefault(p => p.OwnerId == request.Owner.id); if (payment == null) { return(response); } if (!request.CheckHashCode(payment.Partner.Password)) { return(response); } payment.Status = GetOrCreateStatus(request.Payment.result, payment.ProviderCode); response.Agregator.id = payment.Merchant.Bank.AgregarorId; response.Merchant.id = payment.Merchant.Code; response.Owner.id = payment.OwnerId; response.Client.Phone.number = payment.PaymentNumber; response.Payment.amount = payment.Amount; response.Payment.currency = payment.Currency; response.Transaction.id = request.Transaction.id; response.Message.comment = payment.SMSComment; NotifyPartner(payment); LogRegisterResponse(response); } catch (Exception e) { Trace.WriteLine("Ошибка при получении статуса платежа: " + e); response.Result.code = 1; response.Result.comment = ""; throw; } finally { TrySaveChanges(); } return(response); }
private MobicomMessage LogRegisterRequest(MobicomRegisterRequest request) { var logEntry = _storage.MobicomMessages.CreateObject(); logEntry.Id = Guid.NewGuid(); logEntry.CreateTime = DateTime.Now; logEntry.Method = "MobicomRegisterRequestOperation"; logEntry.Action = "Request"; logEntry.AgreagatorId = Truncate(request.Agregator.id.ToString(), 10); logEntry.MerchantId = Truncate(request.Merchant.id.ToString(), 10); logEntry.OwnerId = Truncate(request.Owner.id, 50); logEntry.ClientPhoneNumber = Truncate(request.Client.Phone.number, 10); logEntry.PaymentAmount = Truncate(request.Payment.amount.ToString(), 10); logEntry.PaymentCurrency = Truncate(request.Payment.currency.ToString(), 3); logEntry.PaymentResult = Truncate(request.Payment.result.ToString(), 10); logEntry.TransactionId = Truncate(request.Transaction.id, 50); logEntry.Version = Truncate(request.version, 10); logEntry.Hash = Truncate(request.hash, 50); _storage.MobicomMessages.AddObject(logEntry); return(logEntry); }