diff --git a/client/MAVN.Service.Referral.Client/IReferralClient.cs b/client/MAVN.Service.Referral.Client/IReferralClient.cs
index 5487150..65d6eab 100644
--- a/client/MAVN.Service.Referral.Client/IReferralClient.cs
+++ b/client/MAVN.Service.Referral.Client/IReferralClient.cs
@@ -11,9 +11,6 @@ public interface IReferralClient
/// Application ReferralApi interface
IReferralApi ReferralApi { get; }
- /// Application ReferralLeadApi interface
- //IReferralLeadApi ReferralLeadApi { get; }
-
/// Application ReferralHotelsApi interface
IReferralHotelsApi ReferralHotelsApi { get; }
diff --git a/client/MAVN.Service.Referral.Client/IReferralLeadApi.cs b/client/MAVN.Service.Referral.Client/IReferralLeadApi.cs
deleted file mode 100644
index 8ace829..0000000
--- a/client/MAVN.Service.Referral.Client/IReferralLeadApi.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-//using System;
-//using System.Collections.Generic;
-//using System.Threading.Tasks;
-//using JetBrains.Annotations;
-//using MAVN.Service.Referral.Client.Models.Requests;
-//using MAVN.Service.Referral.Client.Models.Responses;
-//using MAVN.Service.Referral.Client.Models.Responses.OfferToPurchase;
-//using MAVN.Service.Referral.Client.Models.Responses.PropertyPurchase;
-//using Refit;
-
-//namespace MAVN.Service.Referral.Client
-//{
-// ///
-// /// Referral Leads client API interface.
-// ///
-// [PublicAPI]
-// public interface IReferralLeadApi
-// {
-// ///
-// /// Create referral lead.
-// ///
-// /// The model containing the data for which referral lead would be created
-// /// A referral model containing the result of the generation.
-// [Post("/api/referral-leads")]
-// Task PostAsync(ReferralLeadCreateRequest referralLeadCreate);
-
-// ///
-// /// Confirm the lead.
-// ///
-// /// The model containing the data for which referral lead would be confirmed
-// /// Whenever the response is successful or not.
-// [Put("/api/referral-leads/confirm")]
-// Task ConfirmAsync(ReferralLeadConfirmRequest referralLeadConfirmRequest);
-
-// ///
-// /// Created real estate purchase.
-// ///
-// /// The model creating the purchase info.
-// /// A model containing the result form the operation.
-// [Put("/api/referral-leads/purchase")]
-// Task AddRealEstatePurchase(RealEstatePurchaseRequest request);
-
-// ///
-// /// Get referral leads.
-// ///
-// /// A referral lead list model containing all referral leads.
-// [Get("/api/referral-leads")]
-// Task GetAsync(string agentId);
-
-// ///
-// /// Get approved referral leads.
-// ///
-// /// A referral lead list model containing all approved referral leads.
-// [Get("/api/referral-leads/approved")]
-// Task GetApprovedAsync();
-
-// ///
-// /// Get property purchases.
-// ///
-// /// A property purchase list model containing all purchased properties.
-// [Get("/api/referral-leads/property-purchases")]
-// Task GetPropertyPurchasesAsync();
-
-// ///
-// /// Get leads' statistic
-// ///
-// /// Statistic Lead Response Model
-// [Get("/api/referral-leads/statistic")]
-// Task GetLeadStatisticAsync();
-
-// ///
-// /// Get offers to purchase.
-// ///
-// /// A offer to purchase list model containing all offers to purchases.
-// [Get("/api/referral-leads/offer-to-purchases")]
-// Task GetOfferToPurchasesAsync();
-
-// ///
-// /// Get Approved referrals count by Agent Ids.
-// ///
-// /// A list of Agent Ids.
-// /// Referrals count.
-// [Get("/api/referral-leads/approved-referrals-count-by-agents")]
-// Task> GetApprovedReferralsCountByAgentsAsync([Query(CollectionFormat.Multi)]List agentIds);
-// }
-//}
diff --git a/client/MAVN.Service.Referral.Client/Models/Requests/ReferralLeadConfirmRequest.cs b/client/MAVN.Service.Referral.Client/Models/Requests/ReferralLeadConfirmRequest.cs
deleted file mode 100644
index bcae3ed..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Requests/ReferralLeadConfirmRequest.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-
-namespace MAVN.Service.Referral.Client.Models.Requests
-{
- ///
- /// Represents a model for creating a referral lead
- ///
- public class ReferralLeadConfirmRequest
- {
- ///
- /// The confirmation token of the referral.
- ///
- public string ConfirmationToken { get; set; }
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Requests/ReferralLeadCreateRequest.cs b/client/MAVN.Service.Referral.Client/Models/Requests/ReferralLeadCreateRequest.cs
deleted file mode 100644
index 8d6f41c..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Requests/ReferralLeadCreateRequest.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System;
-
-namespace MAVN.Service.Referral.Client.Models.Requests
-{
- ///
- /// Represents a model for creating a referral lead
- ///
- public class ReferralLeadCreateRequest
- {
- ///
- /// The first name of the lead.
- /// Needs to be not null neither empty with length between 3 and 100.
- ///
- public string FirstName { get; set; }
-
- ///
- /// The last name of the lead.
- /// Needs to be not null neither empty with length between 3 and 100.
- ///
- public string LastName { get; set; }
-
- ///
- /// The phone number country code id of the lead.
- /// Needs to be not null neither empty.
- ///
- public int PhoneCountryCodeId { get; set; }
-
- ///
- /// The phone number of the lead.
- /// Needs to be not null neither empty with length between 2 and 50.
- ///
- public string PhoneNumber { get; set; }
-
- ///
- /// The email of the lead.
- /// Needs to be not null neither empty, should be a valid email.
- ///
- public string Email { get; set; }
-
- ///
- /// The lead note.
- /// Can be either null or between 2 or 1000 in length.
- ///
- public string Note { get; set; }
-
- ///
- /// The id of the customer doing the referral.
- /// Needs to be not null neither empty.
- ///
- public string CustomerId { get; set; }
-
- ///
- /// The campaign id if any.
- ///
- public Guid? CampaignId { get; set; }
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ApprovedReferralLeadListResponse.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ApprovedReferralLeadListResponse.cs
deleted file mode 100644
index 6602775..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ApprovedReferralLeadListResponse.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Collections.Generic;
-
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Represents a response from approved referral lead list
- ///
- public class ApprovedReferralLeadListResponse : ReferralErrorResponseModel
- {
- ///
- /// List of referral lead model.
- ///
- public IReadOnlyList ReferralLeads { get; set; }
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ApprovedReferralLeadModel.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ApprovedReferralLeadModel.cs
deleted file mode 100644
index 6afc7b8..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ApprovedReferralLeadModel.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Model representing approved lead model
- ///
- public class ApprovedReferralLeadModel
- {
- ///
- /// The id of the approved lead
- ///
- public string Id { get; set; }
-
- ///
- /// The referral id of the approved lead
- ///
- public string ReferralLeadId { get; set; }
-
- ///
- /// The salesforce id of the approved lead
- ///
- public string SalesforceId { get; set; }
-
- ///
- /// The timestamp of the approved lead
- ///
- public DateTime Timestamp { get; set; }
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadApprovedByAgentModel.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadApprovedByAgentModel.cs
deleted file mode 100644
index fba8da9..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadApprovedByAgentModel.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Used to represent count of Approved referrals by Agent's Id.
- ///
- public class ReferralLeadApprovedByAgentModel
- {
- ///
- /// Id of the Agent.
- ///
- public Guid AgentId { set; get; }
-
- ///
- /// Number of Approved referrals.
- ///
- public int Count { set; get; }
- }
-}
\ No newline at end of file
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadConfirmResponse.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadConfirmResponse.cs
deleted file mode 100644
index 3873460..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadConfirmResponse.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Represents response model of manual referral lead approval.
- ///
- public class ReferralLeadConfirmResponse: ReferralErrorResponseModel
- {
-
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadCreateResponse.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadCreateResponse.cs
deleted file mode 100644
index f5600df..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadCreateResponse.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Represents a response from creating referral lead
- ///
- public class ReferralLeadCreateResponse : ReferralErrorResponseModel
- {
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadListResponse.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadListResponse.cs
deleted file mode 100644
index fca6290..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadListResponse.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Collections.Generic;
-
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Represents a response from referral lead list
- ///
- public class ReferralLeadListResponse : ReferralErrorResponseModel
- {
- ///
- /// List of referral lead model.
- ///
- public IReadOnlyList ReferralLeads { get; set; }
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadModel.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadModel.cs
deleted file mode 100644
index e7ec9d0..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadModel.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using System;
-
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Model representing referral lead model
- ///
- public class ReferralLeadModel
- {
- ///
- /// The id of the referral lead
- ///
- public string Id { get; set; }
-
- ///
- /// The first name of the referral lead
- ///
- public string FirstName { get; set; }
-
- ///
- /// The last name of the referral lead
- ///
- public string LastName { get; set; }
-
- ///
- /// The country code id of the referral lead
- ///
- public int PhoneCountryCodeId { get; set; }
-
- ///
- /// The phone number of the referral lead
- ///
- public string PhoneNumber { get; set; }
-
- ///
- /// The email of the referral lead
- ///
- public string Email { get; set; }
-
- ///
- /// The note for the referral lead
- ///
- public string Note { get; set; }
-
- ///
- /// The agent doing the referral
- ///
- public string AgentId { get; set; }
-
- ///
- /// The salesforce id of the agent doing the referral
- ///
- public string AgentSalesforceId { get; set; }
-
- ///
- /// The state of the referral lead
- ///
- public ReferralLeadState State { get; set; }
-
- ///
- /// The salesforce id of the referral lead
- ///
- public string SalesforceId { get; set; }
-
- ///
- /// Token used to confirm the referral
- ///
- public string ConfirmationToken { get; set; }
-
- ///
- /// The creation date and time of the referral lead
- ///
- public DateTime CreationDateTime { get; set; }
-
- ///
- /// The number of SPA (sales purchase agreement)
- ///
- public int PurchaseCount { get; set; }
-
- ///
- /// The number of OTP (offers to purchase).
- ///
- public int OffersCount { get; set; }
-
- ///
- /// The Campaign Id if any.
- ///
- public Guid? CampaignId { get; set; }
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadState.cs b/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadState.cs
deleted file mode 100644
index 7546f1e..0000000
--- a/client/MAVN.Service.Referral.Client/Models/Responses/ReferralLeadState.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using JetBrains.Annotations;
-
-namespace MAVN.Service.Referral.Client.Models.Responses
-{
- ///
- /// Specifies status of referral lead.
- ///
- [PublicAPI]
- public enum ReferralLeadState
- {
- ///
- /// Indicates that the referral lead waiting for approval.
- ///
- Pending,
-
- ///
- /// Indicates that the referral lead confirmed.
- ///
- Confirmed,
-
- ///
- /// Indicates that the referral lead approved.
- ///
- Approved,
-
- ///
- /// Indicates that the referral lead rejected.
- ///
- Rejected
- }
-}
diff --git a/client/MAVN.Service.Referral.Client/ReferralClient.cs b/client/MAVN.Service.Referral.Client/ReferralClient.cs
index 2e82443..dd20cd8 100644
--- a/client/MAVN.Service.Referral.Client/ReferralClient.cs
+++ b/client/MAVN.Service.Referral.Client/ReferralClient.cs
@@ -12,9 +12,6 @@ public class ReferralClient : IReferralClient
/// Interface to Referral ReferralApi.
public IReferralApi ReferralApi { get; private set; }
- /// Interface to Referral ReferralLeadApi.
- //public IReferralLeadApi ReferralLeadApi { get; }
-
/// Interface to Referral ReferralHotelsApi.
public IReferralHotelsApi ReferralHotelsApi { get; }
@@ -28,7 +25,6 @@ public class ReferralClient : IReferralClient
public ReferralClient(IHttpClientGenerator httpClientGenerator)
{
ReferralApi = httpClientGenerator.Generate();
- //ReferralLeadApi = httpClientGenerator.Generate();
ReferralHotelsApi = httpClientGenerator.Generate();
ReferralFriendsApi = httpClientGenerator.Generate();
CommonReferralApi = httpClientGenerator.Generate();
diff --git a/src/MAVN.Service.Referral.Domain/Models/ReferralLead.cs b/src/MAVN.Service.Referral.Domain/Models/ReferralLead.cs
deleted file mode 100644
index ea86c53..0000000
--- a/src/MAVN.Service.Referral.Domain/Models/ReferralLead.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using MAVN.Service.Referral.Domain.Entities;
-
-namespace MAVN.Service.Referral.Domain.Models
-{
- public class ReferralLead
- {
- public Guid Id { get; set; }
-
- public string FirstName { get; set; }
-
- public string LastName { get; set; }
-
- public int PhoneCountryCodeId { get; set; }
-
- public string PhoneNumber { get; set; }
-
- public string Email { get; set; }
-
- public string Note { get; set; }
-
- public Guid AgentId { get; set; }
-
- public string AgentSalesforceId { get; set; }
-
- public string SalesforceId { get; set; }
-
- public string ResponseStatus { get; set; }
-
- public string ConfirmationToken { get; set; }
-
- public Guid? CampaignId { get; set; }
-
- public ReferralLeadState State { get; set; }
-
- public DateTime CreationDateTime { get; set; }
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadEncrypted.cs b/src/MAVN.Service.Referral.Domain/Models/ReferralLeadEncrypted.cs
deleted file mode 100644
index 45974a8..0000000
--- a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadEncrypted.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using MAVN.Service.Referral.Domain.Entities;
-
-namespace MAVN.Service.Referral.Domain.Models
-{
- ///
- /// Represents an encrypted referral lead that used to store.
- ///
- public class ReferralLeadEncrypted
- {
- ///
- /// The unique identifier.
- ///
- public Guid Id { get; set; }
-
- ///
- /// The phone country code identifier.
- ///
- public int PhoneCountryCodeId { get; set; }
-
- ///
- /// The SHA256 hash of phone number.
- ///
- public string PhoneNumberHash { get; set; }
-
- ///
- /// The SHA256 hash of email address.
- ///
- public string EmailHash { get; set; }
-
- ///
- /// The agent identifier.
- ///
- public Guid AgentId { get; set; }
-
- ///
- /// The salesforce agent identifier.
- ///
- public string AgentSalesforceId { get; set; }
-
- ///
- /// The referral lead salesforce identifier.
- ///
- public string SalesforceId { get; set; }
-
- ///
- /// The salesforce registration status.
- ///
- public string ResponseStatus { get; set; }
-
- ///
- /// The token used to confirm the referral.
- ///
- public string ConfirmationToken { get; set; }
-
- ///
- /// The state of the referral lead.
- ///
- public ReferralLeadState State { get; set; }
-
- ///
- /// The date and time of creation.
- ///
- public DateTime CreationDateTime { get; set; }
-
- ///
- /// The campaign id if any.
- ///
- public Guid? CampaignId { get; set; }
-
- ///
- /// Is stake enabled for Campaign.
- ///
- public bool StakeEnabled { get; set; }
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadEncryptedWithDetails.cs b/src/MAVN.Service.Referral.Domain/Models/ReferralLeadEncryptedWithDetails.cs
deleted file mode 100644
index e98b0eb..0000000
--- a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadEncryptedWithDetails.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace MAVN.Service.Referral.Domain.Models
-{
- ///
- /// Represents an encrypted referral lead with details.
- ///
- public class ReferralLeadEncryptedWithDetails : ReferralLeadEncrypted
- {
- ///
- /// The number of SPA (sales purchase agreement)
- ///
- public int PurchaseCount { get; set; }
-
- ///
- /// The number of OTP (offers to purchase).
- ///
- public int OffersCount { get; set; }
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadState.cs b/src/MAVN.Service.Referral.Domain/Models/ReferralLeadState.cs
deleted file mode 100644
index 31e0c2a..0000000
--- a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadState.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace MAVN.Service.Referral.Domain.Entities
-{
- public enum ReferralLeadState
- {
- Pending,
- Confirmed,
- Approved,
- Rejected
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadWithDetails.cs b/src/MAVN.Service.Referral.Domain/Models/ReferralLeadWithDetails.cs
deleted file mode 100644
index a6f6b07..0000000
--- a/src/MAVN.Service.Referral.Domain/Models/ReferralLeadWithDetails.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace MAVN.Service.Referral.Domain.Models
-{
- ///
- /// Represents referral lead with details.
- ///
- public class ReferralLeadWithDetails : ReferralLead
- {
- ///
- /// The number of SPA (sales purchase agreement)
- ///
- public int PurchaseCount { get; set; }
-
- ///
- /// The number of OTP (offers to purchase).
- ///
- public int OffersCount { get; set; }
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Repositories/IPropertyPurchaseRepository - Copy.cs b/src/MAVN.Service.Referral.Domain/Repositories/IPropertyPurchaseRepository - Copy.cs
deleted file mode 100644
index e6957d0..0000000
--- a/src/MAVN.Service.Referral.Domain/Repositories/IPropertyPurchaseRepository - Copy.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using MAVN.Service.Referral.Domain.Models;
-
-namespace MAVN.Service.Referral.Domain.Repositories
-{
- public interface IOfferToPurchasePurchaseRepository
- {
- Task InsertAsync(OfferToPurchase propertyPurchase);
- Task> GetAsync();
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Repositories/IPropertyPurchaseRepository.cs b/src/MAVN.Service.Referral.Domain/Repositories/IPropertyPurchaseRepository.cs
deleted file mode 100644
index 0669c37..0000000
--- a/src/MAVN.Service.Referral.Domain/Repositories/IPropertyPurchaseRepository.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using MAVN.Service.Referral.Domain.Models;
-
-namespace MAVN.Service.Referral.Domain.Repositories
-{
- public interface IPropertyPurchaseRepository
- {
- Task InsertAsync(PropertyPurchase propertyPurchase);
- Task> GetAsync();
- Task GetUniqueLeadCount();
- Task PropertyPurchaseExistsAsync(Guid referralLeadId);
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Repositories/IReferralLeadRepository.cs b/src/MAVN.Service.Referral.Domain/Repositories/IReferralLeadRepository.cs
deleted file mode 100644
index 2eebe67..0000000
--- a/src/MAVN.Service.Referral.Domain/Repositories/IReferralLeadRepository.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using MAVN.Service.Referral.Domain.Entities;
-using MAVN.Service.Referral.Domain.Models;
-
-namespace MAVN.Service.Referral.Domain.Repositories
-{
- public interface IReferralLeadRepository
- {
- Task CreateAsync(ReferralLeadEncrypted referralLeadEncrypted);
-
- Task UpdateAsync(ReferralLeadEncrypted referralLeadEncrypted);
-
- Task> GetByEmailHashAsync(string emailHash);
-
- Task> GetByPhoneNumberHashAsync(int countryCodeId, string phoneNumberHash);
-
- Task GetByConfirmationTokenAsync(string confirmationToken);
-
- Task> GetForReferrerAsync(
- Guid referrerId,
- Guid? campaignId,
- IEnumerable states);
-
- Task> GetApprovedAsync();
-
- Task GetAsync(Guid referLeadId);
-
- Task DoesExistAsync(Guid referLeadId);
-
- Task GetCountAsync(ReferralLeadState? status = null);
-
- Task> GetApprovedReferralsCountByAgentsAsync(List agentIds);
-
- Task> GetByReferralIdsAsync(List referralIds);
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Services/IOfferToPurchaseService.cs b/src/MAVN.Service.Referral.Domain/Services/IOfferToPurchaseService.cs
deleted file mode 100644
index 8f40ea8..0000000
--- a/src/MAVN.Service.Referral.Domain/Services/IOfferToPurchaseService.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using MAVN.Service.Referral.Domain.Models;
-
-namespace MAVN.Service.Referral.Domain.Services
-{
- public interface IOfferToPurchaseService
- {
- Task<(bool isSuccessful, string errorMessage)> ProcessOfferToPurchaseAsync(OfferToPurchase offerToPurchase);
- Task> GetOffersToPurchasesAsync();
- }
-}
diff --git a/src/MAVN.Service.Referral.Domain/Services/IPropertyPurchaseService.cs b/src/MAVN.Service.Referral.Domain/Services/IPropertyPurchaseService.cs
deleted file mode 100644
index 9ba515c..0000000
--- a/src/MAVN.Service.Referral.Domain/Services/IPropertyPurchaseService.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using MAVN.Service.Referral.Domain.Models;
-
-namespace MAVN.Service.Referral.Domain.Services
-{
- public interface IPropertyPurchaseService
- {
- Task> GetPropertyPurchasesAsync();
- Task AddRealEstatePurchase(PropertyPurchase propertyPurchase);
- }
-}
diff --git a/src/MAVN.Service.Referral.DomainServices/AutoMapperProfile.cs b/src/MAVN.Service.Referral.DomainServices/AutoMapperProfile.cs
index 8ea90c9..b9e012d 100644
--- a/src/MAVN.Service.Referral.DomainServices/AutoMapperProfile.cs
+++ b/src/MAVN.Service.Referral.DomainServices/AutoMapperProfile.cs
@@ -1,4 +1,4 @@
-using AutoMapper;
+using AutoMapper;
using MAVN.Service.Referral.Contract.Events;
using MAVN.Service.Referral.Domain.Models;
@@ -13,27 +13,6 @@ public AutoMapperProfile()
.ForMember(src => src.PhoneNumber, opt => opt.Ignore())
.ForMember(src => src.FullName, opt => opt.Ignore());
- CreateMap(MemberList.Source)
- .ForSourceMember(src => src.FirstName, opt => opt.DoNotValidate())
- .ForSourceMember(src => src.LastName, opt => opt.DoNotValidate())
- .ForSourceMember(src => src.PhoneNumber, opt => opt.DoNotValidate())
- .ForSourceMember(src => src.Email, opt => opt.DoNotValidate())
- .ForSourceMember(src => src.Note, opt => opt.DoNotValidate());
-
- CreateMap(MemberList.Destination)
- .ForMember(dest => dest.FirstName, opt => opt.Ignore())
- .ForMember(dest => dest.LastName, opt => opt.Ignore())
- .ForMember(dest => dest.PhoneNumber, opt => opt.Ignore())
- .ForMember(dest => dest.Email, opt => opt.Ignore())
- .ForMember(dest => dest.Note, opt => opt.Ignore());
-
- CreateMap(MemberList.Destination)
- .ForMember(dest => dest.FirstName, opt => opt.Ignore())
- .ForMember(dest => dest.LastName, opt => opt.Ignore())
- .ForMember(dest => dest.PhoneNumber, opt => opt.Ignore())
- .ForMember(dest => dest.Email, opt => opt.Ignore())
- .ForMember(dest => dest.Note, opt => opt.Ignore());
-
CreateMap(MemberList.Source)
.ForMember(dest => dest.CustomerId, opt => opt.Ignore())
.ForMember(dest => dest.FirstName, opt => opt.Ignore())
diff --git a/src/MAVN.Service.Referral.DomainServices/Managers/CommissionManager.cs b/src/MAVN.Service.Referral.DomainServices/Managers/CommissionManager.cs
deleted file mode 100644
index d9ad1b6..0000000
--- a/src/MAVN.Service.Referral.DomainServices/Managers/CommissionManager.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using AutoMapper;
-using MAVN.Service.Referral.Contract.Events;
-using MAVN.Service.Referral.Domain.Models;
-
-namespace MAVN.Service.Referral.DomainServices.Managers
-{
- public class CommissionManager
-
- {
- private readonly IMapper _mapper;
-
- public CommissionManager(IMapper mapper)
- {
- _mapper = mapper;
- }
-
- public T ToCommissionEvent(PropertyPurchase propertyPurchase, ReferralLeadEncrypted lead)
- where T : PropertyPurchaseReferralEvent
- {
- var propertyPurchaseEvent = new PropertyPurchaseReferralEvent
- {
- ReferrerId = lead.AgentId.ToString(),
- TimeStamp = propertyPurchase.Timestamp,
- CurrencyCode = propertyPurchase.CurrencyCode,
- VatAmount = propertyPurchase.VatAmount,
- DiscountAmount = propertyPurchase.DiscountAmount,
- NetPropertyPrice = propertyPurchase.NetPropertyPrice,
- SellingPropertyPrice = propertyPurchase.SellingPropertyPrice,
- CalculatedCommissionAmount = propertyPurchase.CalculatedCommissionAmount,
- ReferralId = lead.Id.ToString()
- };
- return _mapper.Map(propertyPurchaseEvent);
- }
- }
-}
diff --git a/src/MAVN.Service.Referral.DomainServices/Services/CommonReferralService.cs b/src/MAVN.Service.Referral.DomainServices/Services/CommonReferralService.cs
index aeea6d1..42d0350 100644
--- a/src/MAVN.Service.Referral.DomainServices/Services/CommonReferralService.cs
+++ b/src/MAVN.Service.Referral.DomainServices/Services/CommonReferralService.cs
@@ -3,7 +3,6 @@
using System.Linq;
using System.Threading.Tasks;
using AutoMapper;
-using MAVN.Service.Referral.Domain.Entities;
using MAVN.Service.Referral.Domain.Models;
using MAVN.Service.Referral.Domain.Services;
diff --git a/src/MAVN.Service.Referral.DomainServices/Services/OfferToPurchaseService.cs b/src/MAVN.Service.Referral.DomainServices/Services/OfferToPurchaseService.cs
deleted file mode 100644
index 101c61a..0000000
--- a/src/MAVN.Service.Referral.DomainServices/Services/OfferToPurchaseService.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Lykke.RabbitMqBroker.Publisher;
-using MAVN.Service.Referral.Contract.Events;
-using MAVN.Service.Referral.Domain.Models;
-using MAVN.Service.Referral.Domain.Repositories;
-using MAVN.Service.Referral.Domain.Services;
-
-namespace MAVN.Service.Referral.DomainServices.Services
-{
- public class OfferToPurchaseService : IOfferToPurchaseService
- {
- private readonly IReferralLeadRepository _referralLeadRepository;
- private readonly IOfferToPurchasePurchaseRepository _offerToPurchasePurchaseRepository;
- private readonly IRabbitPublisher _offerToPurchasePublisher;
-
- public OfferToPurchaseService(
- IReferralLeadRepository referralLeadRepository,
- IOfferToPurchasePurchaseRepository offerToPurchasePurchaseRepository,
- IRabbitPublisher offerToPurchasePublisher)
- {
- _referralLeadRepository = referralLeadRepository;
- _offerToPurchasePurchaseRepository = offerToPurchasePurchaseRepository;
- _offerToPurchasePublisher = offerToPurchasePublisher;
- }
-
- public async Task<(bool isSuccessful, string errorMessage)> ProcessOfferToPurchaseAsync(
- OfferToPurchase offerToPurchase)
- {
- if (!await _referralLeadRepository.DoesExistAsync(offerToPurchase.ReferId))
- {
- return (false, $"Referral lead with id '{offerToPurchase.ReferId} does not exist.'");
- }
-
- await _offerToPurchasePurchaseRepository.InsertAsync(offerToPurchase);
-
- var lead = await _referralLeadRepository.GetAsync(offerToPurchase.ReferId);
-
- await _offerToPurchasePublisher.PublishAsync(new OfferToPurchaseByLeadEvent
- {
- AgentId = lead.AgentId.ToString(),
- TimeStamp = offerToPurchase.Timestamp,
- CurrencyCode = offerToPurchase.CurrencyCode, VatAmount = offerToPurchase.VatAmount,
- DiscountAmount = offerToPurchase.DiscountAmount, NetPropertyPrice = offerToPurchase.NetPropertyPrice,
- SellingPropertyPrice = offerToPurchase.SellingPropertyPrice,
- CampaignId = lead.CampaignId.Value,
- UnitLocationCode = offerToPurchase.UnitLocationCode,
- ReferralId = lead.Id.ToString()
- });
-
- return (true, string.Empty);
- }
-
- public async Task> GetOffersToPurchasesAsync()
- {
- return await _offerToPurchasePurchaseRepository.GetAsync();
- }
- }
-}
diff --git a/src/MAVN.Service.Referral.DomainServices/Services/PropertyPurchaseService.cs b/src/MAVN.Service.Referral.DomainServices/Services/PropertyPurchaseService.cs
deleted file mode 100644
index e26ea76..0000000
--- a/src/MAVN.Service.Referral.DomainServices/Services/PropertyPurchaseService.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using MAVN.Service.Referral.Domain.Models;
-using MAVN.Service.Referral.Domain.Repositories;
-using MAVN.Service.Referral.Domain.Services;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using MAVN.Service.Referral.Domain.Exceptions;
-using MAVN.Service.Referral.DomainServices.Managers;
-
-namespace MAVN.Service.Referral.DomainServices.Services
-{
- public class PropertyPurchaseService : IPropertyPurchaseService
- {
- private const string EstatePurchaseConditionName = "estate-lead-referral";
-
- private readonly IReferralLeadRepository _referralLeadRepository;
- private readonly IPropertyPurchaseRepository _propertyPurchaseRepository;
- private readonly IStakeService _stakeService;
- private readonly CommissionManager _commissionManager;
-
- public PropertyPurchaseService(
- IReferralLeadRepository referralLeadRepository,
- IPropertyPurchaseRepository propertyPurchaseRepository,
- IStakeService stakeService,
- CommissionManager commissionManager)
- {
- _referralLeadRepository = referralLeadRepository;
- _propertyPurchaseRepository = propertyPurchaseRepository;
- _stakeService = stakeService;
- _commissionManager = commissionManager;
- }
-
- public async Task> GetPropertyPurchasesAsync()
- {
- return await _propertyPurchaseRepository.GetAsync();
- }
-
- public async Task AddRealEstatePurchase(PropertyPurchase propertyPurchase)
- {
- var lead = await _referralLeadRepository.GetAsync(propertyPurchase.ReferralLeadId);
- if (lead == null)
- {
- throw new ReferralDoesNotExistException($"Referral lead with id '{propertyPurchase.ReferralLeadId} does not exist.'");
- }
-
- // If duplicate comes we want to skip releasing stake and inserting new entity
- if (!await _propertyPurchaseRepository.PropertyPurchaseExistsAsync(propertyPurchase.ReferralLeadId))
- {
- await _propertyPurchaseRepository.InsertAsync(propertyPurchase);
-
- if (lead.StakeEnabled)
- {
- await _stakeService.ReleaseStake(lead.Id.ToString("D"), lead.CampaignId.Value, EstatePurchaseConditionName);
- }
- }
-
- return lead.CampaignId.Value;
- }
- }
-}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/AutofacModule.cs b/src/MAVN.Service.Referral.MsSqlRepositories/AutofacModule.cs
index a110ca7..db8deda 100644
--- a/src/MAVN.Service.Referral.MsSqlRepositories/AutofacModule.cs
+++ b/src/MAVN.Service.Referral.MsSqlRepositories/AutofacModule.cs
@@ -1,4 +1,4 @@
-using Autofac;
+using Autofac;
using Lykke.Common.MsSql;
using MAVN.Service.Referral.Domain.Repositories;
using MAVN.Service.Referral.MsSqlRepositories.Repositories;
@@ -29,21 +29,9 @@ protected override void Load(ContainerBuilder builder)
.As()
.SingleInstance();
- builder.RegisterType()
- .As()
- .SingleInstance();
-
- builder.RegisterType()
- .As()
- .SingleInstance();
-
builder.RegisterType()
.As()
.SingleInstance();
-
- builder.RegisterType()
- .As()
- .SingleInstance();
}
}
}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/AutomapperProfile.cs b/src/MAVN.Service.Referral.MsSqlRepositories/AutomapperProfile.cs
index 43e42d8..b69fcce 100644
--- a/src/MAVN.Service.Referral.MsSqlRepositories/AutomapperProfile.cs
+++ b/src/MAVN.Service.Referral.MsSqlRepositories/AutomapperProfile.cs
@@ -1,4 +1,4 @@
-using AutoMapper;
+using AutoMapper;
using MAVN.Service.Referral.Domain.Models;
using MAVN.Service.Referral.MsSqlRepositories.Entities;
@@ -17,46 +17,12 @@ public AutoMapperProfile()
.ForMember(r => r.ReferralCode, opt => opt.MapFrom(x => x.ReferralCode))
.ForMember(r => r.Id, opt => opt.MapFrom(r => r.CustomerId));
- CreateMap();
-
- CreateMap()
- .ForMember(src => src.VatAmount, opt => opt.Ignore())
- .ForMember(src => src.SellingPropertyPrice, opt => opt.Ignore())
- .ForMember(src => src.NetPropertyPrice, opt => opt.Ignore())
- .ForMember(src => src.DiscountAmount, opt => opt.Ignore())
- .ForMember(src => src.CalculatedCommissionAmount, opt => opt.Ignore())
- .ForMember(src => src.CurrencyCode, opt => opt.Ignore());
-
- CreateMap();
-
- CreateMap();
-
- CreateMap()
- .ForMember(src => src.VatAmount, opt => opt.Ignore())
- .ForMember(src => src.SellingPropertyPrice, opt => opt.Ignore())
- .ForMember(src => src.NetPropertyPrice, opt => opt.Ignore())
- .ForMember(src => src.DiscountAmount, opt => opt.Ignore())
- .ForMember(src => src.CurrencyCode, opt => opt.Ignore())
- .ForMember(src => src.UnitLocationCode, opt => opt.Ignore());
-
CreateMap(MemberList.Source);
CreateMap(MemberList.Destination);
- CreateMap(MemberList.Source)
- .ForMember(src => src.OffersToPurchase, opt => opt.Ignore())
- .ForMember(src => src.PropertyPurchases, opt => opt.Ignore());
- CreateMap(MemberList.Destination)
- .ForSourceMember(src => src.OffersToPurchase, opt => opt.DoNotValidate())
- .ForSourceMember(src => src.PropertyPurchases, opt => opt.DoNotValidate());
-
- CreateMap(MemberList.Destination)
- .ForMember(dest => dest.OffersCount, opt => opt.MapFrom(src => src.OffersToPurchase.Count))
- .ForMember(dest => dest.PurchaseCount, opt => opt.MapFrom(src => src.PropertyPurchases.Count));
-
// Friend Referral
CreateMap(MemberList.Destination);
-
CreateMap(MemberList.Destination)
.ForMember(src => src.Email, opt => opt.Ignore())
.ForMember(src => src.FullName, opt => opt.Ignore());
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/OfferToPurchaseEntity.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Entities/OfferToPurchaseEntity.cs
deleted file mode 100644
index 5afa264..0000000
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/OfferToPurchaseEntity.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace MAVN.Service.Referral.MsSqlRepositories.Entities
-{
- [Table("offer_to_purchase")]
- public class OfferToPurchaseEntity : BaseEntity
- {
- [Column("refer_id")]
- public Guid ReferId { get; set; }
-
- [Column("timestamp")]
- public DateTime Timestamp { get; set; }
- }
-}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/PropertyPurchaseEntity.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Entities/PropertyPurchaseEntity.cs
deleted file mode 100644
index e1b4206..0000000
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/PropertyPurchaseEntity.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace MAVN.Service.Referral.MsSqlRepositories.Entities
-{
- [Table("property_purchase")]
- public class PropertyPurchaseEntity : BaseEntity
- {
- [Column("refer_lead_id")]
- public Guid ReferralLeadId { get; set; }
-
- [Column("commission_number")]
- public int CommissionNumber { get; set; }
-
- [Column("timestamp")]
- public DateTime Timestamp { get; set; }
- }
-}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/ReferralLeadEntity.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Entities/ReferralLeadEntity.cs
deleted file mode 100644
index 8e64c09..0000000
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/ReferralLeadEntity.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace MAVN.Service.Referral.MsSqlRepositories.Entities
-{
- [Table("referral_lead")]
- public class ReferralLeadEntity : BaseEntity
- {
- [Column("phone_country_code_id")]
- public int PhoneCountryCodeId { get; set; }
-
- [Column("phone_number_hash", TypeName = "char(64)")]
- public string PhoneNumberHash { get; set; }
-
- [Column("email_hash", TypeName = "char(64)")]
- public string EmailHash { get; set; }
-
- [Column("agent_id")]
- public Guid AgentId { get; set; }
-
- [Column("salesforce_id", TypeName = "varchar(200)")]
- public string SalesforceId { get; set; }
-
- [Column("agent_salesforce_id", TypeName = "varchar(200)")]
- public string AgentSalesforceId { get; set; }
-
- [Column("response_status", TypeName = "varchar(64)")]
- public string ResponseStatus { get; set; }
-
- [Column("confirmation_token", TypeName = "varchar(200)")]
- public string ConfirmationToken { set; get; }
-
- [Column("campaign_id")]
- public Guid? CampaignId { get; set; }
-
- [Column("stake_enabled")]
- public bool StakeEnabled { get; set; }
-
- [Column("state")]
- public ReferralLeadState State { get; set; }
-
- [Column("creation_datetime")]
- public DateTime CreationDateTime { get; set; }
-
- public ICollection OffersToPurchase { get; set; }
-
- public ICollection PropertyPurchases { get; set; }
- }
-}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/ReferralLeadState.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Entities/ReferralLeadState.cs
deleted file mode 100644
index f71d2b9..0000000
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Entities/ReferralLeadState.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace MAVN.Service.Referral.MsSqlRepositories.Entities
-{
- public enum ReferralLeadState
- {
- Pending,
- Confirmed,
- Approved,
- Rejected
- }
-}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/20200505104830_RemoveReferralLead.Designer.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/20200505104830_RemoveReferralLead.Designer.cs
new file mode 100644
index 0000000..6d5b048
--- /dev/null
+++ b/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/20200505104830_RemoveReferralLead.Designer.cs
@@ -0,0 +1,166 @@
+//
+using System;
+using MAVN.Service.Referral.MsSqlRepositories;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+namespace MAVN.Service.Referral.MsSqlRepositories.Migrations
+{
+ [DbContext(typeof(ReferralContext))]
+ [Migration("20200505104830_RemoveReferralLead")]
+ partial class RemoveReferralLead
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasDefaultSchema("referral")
+ .HasAnnotation("ProductVersion", "2.2.4-servicing-10062")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.FriendReferralEntity", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id");
+
+ b.Property("CampaignId")
+ .HasColumnName("campaign_id");
+
+ b.Property("CreationDateTime")
+ .HasColumnName("creation_datetime");
+
+ b.Property("ReferredId")
+ .HasColumnName("referred_id");
+
+ b.Property("ReferrerId")
+ .HasColumnName("referrer_id");
+
+ b.Property("State")
+ .HasColumnName("state");
+
+ b.HasKey("Id");
+
+ b.ToTable("friend_referral");
+ });
+
+ modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.PurchaseReferralHistoryEntity", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id");
+
+ b.Property("ReferredId")
+ .HasColumnName("referred_id");
+
+ b.Property("ReferrerId")
+ .HasColumnName("referrer_id");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ReferredId");
+
+ b.HasIndex("ReferrerId");
+
+ b.ToTable("purchase_referral");
+ });
+
+ modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralEntity", b =>
+ {
+ b.Property("CustomerId")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("customer_id");
+
+ b.Property("ReferralCode")
+ .HasColumnName("referral_code")
+ .HasColumnType("varchar(64)");
+
+ b.HasKey("CustomerId");
+
+ b.HasIndex("ReferralCode")
+ .IsUnique()
+ .HasFilter("[referral_code] IS NOT NULL");
+
+ b.ToTable("customer_referral");
+ });
+
+ modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralHotelEntity", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id");
+
+ b.Property("CampaignId")
+ .HasColumnName("campaign_id");
+
+ b.Property("ConfirmationToken")
+ .HasColumnName("confirmation_token");
+
+ b.Property("CreationDateTime")
+ .HasColumnName("creation_datetime");
+
+ b.Property("EmailHash")
+ .HasColumnName("email_hash")
+ .HasColumnType("char(64)");
+
+ b.Property("ExpirationDateTime")
+ .HasColumnName("expiration_datetime");
+
+ b.Property("FullNameHash")
+ .HasColumnName("name_hash")
+ .HasColumnType("char(64)");
+
+ b.Property("Location")
+ .HasColumnName("location");
+
+ b.Property("PartnerId")
+ .HasColumnName("partner_id");
+
+ b.Property("PhoneCountryCodeId")
+ .HasColumnName("phone_country_code_id");
+
+ b.Property("PhoneNumberHash")
+ .HasColumnName("phone_number_hash")
+ .HasColumnType("char(64)");
+
+ b.Property("ReferrerId")
+ .HasColumnName("referrer_id");
+
+ b.Property("StakeEnabled")
+ .HasColumnName("stake_enabled");
+
+ b.Property("State")
+ .IsRequired()
+ .HasColumnName("state");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ConfirmationToken");
+
+ b.HasIndex("EmailHash");
+
+ b.HasIndex("ReferrerId");
+
+ b.ToTable("referral_hotel");
+ });
+
+ modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.PurchaseReferralHistoryEntity", b =>
+ {
+ b.HasOne("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralEntity", "Referred")
+ .WithMany("PurchasesReferred")
+ .HasForeignKey("ReferredId")
+ .OnDelete(DeleteBehavior.Restrict);
+
+ b.HasOne("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralEntity", "Referrer")
+ .WithMany("PurchaseReferrers")
+ .HasForeignKey("ReferrerId")
+ .OnDelete(DeleteBehavior.Restrict);
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/20200505104830_RemoveReferralLead.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/20200505104830_RemoveReferralLead.cs
new file mode 100644
index 0000000..5d2a206
--- /dev/null
+++ b/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/20200505104830_RemoveReferralLead.cs
@@ -0,0 +1,105 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace MAVN.Service.Referral.MsSqlRepositories.Migrations
+{
+ public partial class RemoveReferralLead : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "offer_to_purchase",
+ schema: "referral");
+
+ migrationBuilder.DropTable(
+ name: "property_purchase",
+ schema: "referral");
+
+ migrationBuilder.DropTable(
+ name: "referral_lead",
+ schema: "referral");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "referral_lead",
+ schema: "referral",
+ columns: table => new
+ {
+ id = table.Column(nullable: false),
+ agent_id = table.Column(nullable: false),
+ agent_salesforce_id = table.Column(type: "varchar(200)", nullable: true),
+ campaign_id = table.Column(nullable: true),
+ confirmation_token = table.Column(type: "varchar(200)", nullable: true),
+ creation_datetime = table.Column(nullable: false),
+ email_hash = table.Column(type: "char(64)", nullable: true),
+ phone_country_code_id = table.Column(nullable: false),
+ phone_number_hash = table.Column(type: "char(64)", nullable: true),
+ response_status = table.Column(type: "varchar(64)", nullable: true),
+ salesforce_id = table.Column(type: "varchar(200)", nullable: true),
+ stake_enabled = table.Column(nullable: false),
+ state = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_referral_lead", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "offer_to_purchase",
+ schema: "referral",
+ columns: table => new
+ {
+ id = table.Column(nullable: false),
+ refer_id = table.Column(nullable: false),
+ timestamp = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_offer_to_purchase", x => x.id);
+ table.ForeignKey(
+ name: "FK_offer_to_purchase_referral_lead_refer_id",
+ column: x => x.refer_id,
+ principalSchema: "referral",
+ principalTable: "referral_lead",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "property_purchase",
+ schema: "referral",
+ columns: table => new
+ {
+ id = table.Column(nullable: false),
+ commission_number = table.Column(nullable: false),
+ refer_lead_id = table.Column(nullable: false),
+ timestamp = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_property_purchase", x => x.id);
+ table.ForeignKey(
+ name: "FK_property_purchase_referral_lead_refer_lead_id",
+ column: x => x.refer_lead_id,
+ principalSchema: "referral",
+ principalTable: "referral_lead",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_offer_to_purchase_refer_id",
+ schema: "referral",
+ table: "offer_to_purchase",
+ column: "refer_id");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_property_purchase_refer_lead_id",
+ schema: "referral",
+ table: "property_purchase",
+ column: "refer_lead_id");
+ }
+ }
+}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/ReferralContextModelSnapshot.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/ReferralContextModelSnapshot.cs
index ebb13dc..e22e09b 100644
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/ReferralContextModelSnapshot.cs
+++ b/src/MAVN.Service.Referral.MsSqlRepositories/Migrations/ReferralContextModelSnapshot.cs
@@ -1,4 +1,4 @@
-//
+//
using System;
using MAVN.Service.Referral.MsSqlRepositories;
using Microsoft.EntityFrameworkCore;
@@ -46,47 +46,6 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("friend_referral");
});
- modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.OfferToPurchaseEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnName("id");
-
- b.Property("ReferId")
- .HasColumnName("refer_id");
-
- b.Property("Timestamp")
- .HasColumnName("timestamp");
-
- b.HasKey("Id");
-
- b.HasIndex("ReferId");
-
- b.ToTable("offer_to_purchase");
- });
-
- modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.PropertyPurchaseEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnName("id");
-
- b.Property("CommissionNumber")
- .HasColumnName("commission_number");
-
- b.Property("ReferralLeadId")
- .HasColumnName("refer_lead_id");
-
- b.Property("Timestamp")
- .HasColumnName("timestamp");
-
- b.HasKey("Id");
-
- b.HasIndex("ReferralLeadId");
-
- b.ToTable("property_purchase");
- });
-
modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.PurchaseReferralHistoryEntity", b =>
{
b.Property("Id")
@@ -187,75 +146,6 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("referral_hotel");
});
- modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralLeadEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnName("id");
-
- b.Property("AgentId")
- .HasColumnName("agent_id");
-
- b.Property("AgentSalesforceId")
- .HasColumnName("agent_salesforce_id")
- .HasColumnType("varchar(200)");
-
- b.Property("CampaignId")
- .HasColumnName("campaign_id");
-
- b.Property("ConfirmationToken")
- .HasColumnName("confirmation_token")
- .HasColumnType("varchar(200)");
-
- b.Property("CreationDateTime")
- .HasColumnName("creation_datetime");
-
- b.Property("EmailHash")
- .HasColumnName("email_hash")
- .HasColumnType("char(64)");
-
- b.Property("PhoneCountryCodeId")
- .HasColumnName("phone_country_code_id");
-
- b.Property("PhoneNumberHash")
- .HasColumnName("phone_number_hash")
- .HasColumnType("char(64)");
-
- b.Property("ResponseStatus")
- .HasColumnName("response_status")
- .HasColumnType("varchar(64)");
-
- b.Property("SalesforceId")
- .HasColumnName("salesforce_id")
- .HasColumnType("varchar(200)");
-
- b.Property("StakeEnabled")
- .HasColumnName("stake_enabled");
-
- b.Property("State")
- .HasColumnName("state");
-
- b.HasKey("Id");
-
- b.ToTable("referral_lead");
- });
-
- modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.OfferToPurchaseEntity", b =>
- {
- b.HasOne("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralLeadEntity")
- .WithMany("OffersToPurchase")
- .HasForeignKey("ReferId")
- .OnDelete(DeleteBehavior.Restrict);
- });
-
- modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.PropertyPurchaseEntity", b =>
- {
- b.HasOne("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralLeadEntity")
- .WithMany("PropertyPurchases")
- .HasForeignKey("ReferralLeadId")
- .OnDelete(DeleteBehavior.Restrict);
- });
-
modelBuilder.Entity("MAVN.Service.Referral.MsSqlRepositories.Entities.PurchaseReferralHistoryEntity", b =>
{
b.HasOne("MAVN.Service.Referral.MsSqlRepositories.Entities.ReferralEntity", "Referred")
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/ReferralContext.cs b/src/MAVN.Service.Referral.MsSqlRepositories/ReferralContext.cs
index 685537e..dc9a049 100644
--- a/src/MAVN.Service.Referral.MsSqlRepositories/ReferralContext.cs
+++ b/src/MAVN.Service.Referral.MsSqlRepositories/ReferralContext.cs
@@ -15,9 +15,6 @@ public class ReferralContext : MsSqlContext
public DbSet Referrals { get; set; }
public DbSet FriendReferrals { get; set; }
public DbSet PurchaseReferrals { get; set; }
- public DbSet ReferralLeads { get; set; }
- public DbSet PropertyPurchases { get; set; }
- public DbSet OfferToPurchases { get; set; }
public DbSet ReferralHotels { get; set; }
// C-tor for EF migrations
@@ -65,18 +62,6 @@ protected override void OnLykkeModelCreating(ModelBuilder modelBuilder)
.HasForeignKey(e => e.ReferrerId)
.OnDelete(DeleteBehavior.Restrict);
- modelBuilder.Entity()
- .HasMany(e => e.OffersToPurchase)
- .WithOne()
- .HasForeignKey(e => e.ReferId)
- .OnDelete(DeleteBehavior.Restrict);
-
- modelBuilder.Entity()
- .HasMany(e => e.PropertyPurchases)
- .WithOne()
- .HasForeignKey(e => e.ReferralLeadId)
- .OnDelete(DeleteBehavior.Restrict);
-
modelBuilder
.Entity()
.Property(e => e.State)
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/OfferToPurchasePurchaseRepository.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/OfferToPurchasePurchaseRepository.cs
deleted file mode 100644
index fe9d32e..0000000
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/OfferToPurchasePurchaseRepository.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using AutoMapper;
-using Lykke.Common.MsSql;
-using MAVN.Service.Referral.Domain.Models;
-using MAVN.Service.Referral.Domain.Repositories;
-using MAVN.Service.Referral.MsSqlRepositories.Entities;
-using Microsoft.EntityFrameworkCore;
-
-namespace MAVN.Service.Referral.MsSqlRepositories.Repositories
-{
- public class OfferToPurchasePurchaseRepository : IOfferToPurchasePurchaseRepository
- {
- private readonly MsSqlContextFactory _msSqlContextFactory;
- private readonly IMapper _mapper;
-
- public OfferToPurchasePurchaseRepository(MsSqlContextFactory msSqlContextFactory, IMapper mapper)
- {
- _msSqlContextFactory = msSqlContextFactory;
- _mapper = mapper;
- }
-
- public async Task InsertAsync(OfferToPurchase offerToPurchase)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- await context.AddAsync(_mapper.Map(offerToPurchase));
-
- await context.SaveChangesAsync();
- }
- }
-
- public async Task> GetAsync()
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entities = await context.OfferToPurchases.ToListAsync();
-
- return _mapper.Map>(entities);
- }
- }
- }
-}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/PropertyPurchaseRepository.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/PropertyPurchaseRepository.cs
deleted file mode 100644
index eff0e99..0000000
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/PropertyPurchaseRepository.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using AutoMapper;
-using Lykke.Common.MsSql;
-using MAVN.Service.Referral.Domain.Models;
-using MAVN.Service.Referral.Domain.Repositories;
-using MAVN.Service.Referral.MsSqlRepositories.Entities;
-using Microsoft.EntityFrameworkCore;
-
-namespace MAVN.Service.Referral.MsSqlRepositories.Repositories
-{
- public class PropertyPurchaseRepository : IPropertyPurchaseRepository
- {
- private readonly IDbContextFactory _msSqlContextFactory;
- private readonly IMapper _mapper;
-
- public PropertyPurchaseRepository(IDbContextFactory msSqlContextFactory, IMapper mapper)
- {
- _msSqlContextFactory = msSqlContextFactory;
- _mapper = mapper;
- }
-
- public async Task InsertAsync(PropertyPurchase propertyPurchase)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- await context.AddAsync(_mapper.Map(propertyPurchase));
-
- await context.SaveChangesAsync();
- }
- }
-
- public async Task> GetAsync()
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entities = await context.PropertyPurchases.ToListAsync();
-
- return _mapper.Map>(entities);
- }
- }
-
- public async Task GetUniqueLeadCount()
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- // Order by throws an EF "cannot be evaluated exception"
- var count = await context.PropertyPurchases.Select(p => p.ReferralLeadId)
- .Distinct()
- .CountAsync();
-
- return count;
- }
- }
-
- public async Task PropertyPurchaseExistsAsync(Guid referralLeadId)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- return await context.PropertyPurchases.AnyAsync(e => e.ReferralLeadId == referralLeadId);
- }
- }
- }
-}
diff --git a/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/ReferralLeadRepository.cs b/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/ReferralLeadRepository.cs
deleted file mode 100644
index 7a567a4..0000000
--- a/src/MAVN.Service.Referral.MsSqlRepositories/Repositories/ReferralLeadRepository.cs
+++ /dev/null
@@ -1,198 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Linq.Expressions;
-using System.Threading.Tasks;
-using AutoMapper;
-using Lykke.Common.MsSql;
-using MAVN.Service.Referral.Domain.Models;
-using MAVN.Service.Referral.Domain.Repositories;
-using MAVN.Service.Referral.MsSqlRepositories.Entities;
-using Microsoft.EntityFrameworkCore;
-
-namespace MAVN.Service.Referral.MsSqlRepositories.Repositories
-{
- public class ReferralLeadRepository : IReferralLeadRepository
- {
- private readonly IDbContextFactory _msSqlContextFactory;
- private readonly IMapper _mapper;
-
- public ReferralLeadRepository(IDbContextFactory msSqlContextFactory, IMapper mapper)
- {
- _msSqlContextFactory = msSqlContextFactory;
- _mapper = mapper;
- }
-
- public async Task CreateAsync(ReferralLeadEncrypted referralLeadEncrypted)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entity = _mapper.Map(referralLeadEncrypted);
-
- entity.CreationDateTime = DateTime.UtcNow;
-
- await context.AddAsync(entity);
-
- await context.SaveChangesAsync();
-
- return _mapper.Map(entity);
- }
- }
-
- public async Task UpdateAsync(ReferralLeadEncrypted referralLeadEncrypted)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entity = _mapper.Map(referralLeadEncrypted);
-
- context.Update(entity);
-
- await context.SaveChangesAsync();
-
- return _mapper.Map(entity);
- }
- }
-
- public async Task> GetByEmailHashAsync(string emailHash)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entities = await context.ReferralLeads
- .Where(c => c.EmailHash == emailHash)
- .ToListAsync();
-
- return _mapper.Map>(entities);
- }
- }
-
- public async Task> GetByPhoneNumberHashAsync(int countryCodeId,
- string phoneNumberHash)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entities = await context.ReferralLeads
- .Where(c => c.PhoneCountryCodeId == countryCodeId && c.PhoneNumberHash == phoneNumberHash)
- .ToListAsync();
-
- return _mapper.Map>(entities);
- }
- }
-
- public async Task GetByConfirmationTokenAsync(string confirmationToken)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entity = await context.ReferralLeads
- .FirstOrDefaultAsync(c => c.ConfirmationToken == confirmationToken);
-
- return _mapper.Map(entity);
- }
- }
-
- public async Task> GetForReferrerAsync(
- Guid referrerId,
- Guid? campaignId,
- IEnumerable states)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entities = context.ReferralLeads
- .Where(c => c.AgentId == referrerId);
-
- if (campaignId.HasValue)
- {
- entities = entities
- .Where(c => c.CampaignId == campaignId.Value);
- }
-
- if (states != null && states.Any())
- {
- var mappedStates = states.Select(s => _mapper.Map(s));
-
- entities = entities
- .Where(c => mappedStates.Contains(c.State));
- }
-
- entities = entities.Include(o => o.OffersToPurchase)
- .Include(o => o.PropertyPurchases);
-
- return _mapper.Map>(await entities.ToListAsync());
- }
- }
-
- public async Task> GetApprovedAsync()
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entities = await context.ReferralLeads
- .Where(c => c.State == ReferralLeadState.Approved)
- .ToListAsync();
-
- return _mapper.Map>(entities);
- }
- }
-
- public async Task GetAsync(Guid referLeadId)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var entity = await context.ReferralLeads.FirstOrDefaultAsync(c => c.Id == referLeadId);
-
- return _mapper.Map(entity);
- }
- }
-
- public async Task DoesExistAsync(Guid referLeadId)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- return await context.ReferralLeads.AnyAsync(c => c.Id == referLeadId);
- }
- }
-
- public async Task GetCountAsync(Domain.Entities.ReferralLeadState? status = null)
- {
- Expression> filter = c => true;
-
- if (status.HasValue)
- {
- var state = _mapper.Map(status);
-
- filter = c => c.State == state;
- }
-
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var count = await context.ReferralLeads
- .CountAsync(filter);
-
- return count;
- }
- }
-
- public async Task> GetApprovedReferralsCountByAgentsAsync(List agentIds)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var query = from b in context.ReferralLeads
- where b.State == ReferralLeadState.Approved && agentIds.Contains(b.AgentId)
- group b.Id by b.AgentId into g
- select new Tuple(g.Key, g.Count());
-
- var result = await query.ToListAsync();
-
- return agentIds.ToDictionary(x => x, x => result.SingleOrDefault(y => y.Item1 == x)?.Item2 ?? 0);
- }
- }
-
- public async Task> GetByReferralIdsAsync(List referralIds)
- {
- using (var context = _msSqlContextFactory.CreateDataContext())
- {
- var result = await context.ReferralLeads.Where(l => referralIds.Contains(l.Id)).ToListAsync();
-
- return _mapper.Map>(result);
- }
- }
- }
-}
diff --git a/src/MAVN.Service.Referral/Controllers/ReferralHotelsController.cs b/src/MAVN.Service.Referral/Controllers/ReferralHotelsController.cs
index 9d03b2a..9198dc7 100644
--- a/src/MAVN.Service.Referral/Controllers/ReferralHotelsController.cs
+++ b/src/MAVN.Service.Referral/Controllers/ReferralHotelsController.cs
@@ -41,9 +41,9 @@ public ReferralHotelsController(
}
///
- /// ReferralLeadCreateResponse.
+ /// ReferralHotelCreateResponse.
[HttpPost("")]
- [ProducesResponseType(typeof(ReferralLeadCreateResponse), (int) HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ReferralHotelCreateResponse), (int) HttpStatusCode.OK)]
public async Task CreateAsync(ReferralHotelCreateRequest request)
{
try
diff --git a/src/MAVN.Service.Referral/Controllers/ReferralLeadsController.cs b/src/MAVN.Service.Referral/Controllers/ReferralLeadsController.cs
deleted file mode 100644
index 2c07379..0000000
--- a/src/MAVN.Service.Referral/Controllers/ReferralLeadsController.cs
+++ /dev/null
@@ -1,331 +0,0 @@
-//using System;
-//using System.Collections.Generic;
-//using System.Linq;
-//using System.Net;
-//using System.Threading.Tasks;
-//using AutoMapper;
-//using Lykke.Common.Log;
-//using Lykke.Service.CustomerProfile.Client;
-//using MAVN.Service.Referral.Client;
-//using MAVN.Service.Referral.Client.Enums;
-//using MAVN.Service.Referral.Client.Models.Requests;
-//using MAVN.Service.Referral.Client.Models.Responses;
-//using MAVN.Service.Referral.Client.Models.Responses.OfferToPurchase;
-//using MAVN.Service.Referral.Client.Models.Responses.PropertyPurchase;
-//using MAVN.Service.Referral.Domain.Exceptions;
-//using MAVN.Service.Referral.Domain.Models;
-//using MAVN.Service.Referral.Domain.Services;
-//using Microsoft.AspNetCore.Mvc;
-
-//namespace MAVN.Service.Referral.Controllers
-//{
-// [Route("api/referral-leads")]
-// [ApiController]
-// public class ReferralLeadsController : BaseController, IReferralLeadApi
-// {
-// private readonly IPropertyPurchaseService _propertyPurchaseService;
-// private readonly IOfferToPurchaseService _offerToPurchaseService;
-// private readonly IDemoLeadService _demoLeadService;
-// private readonly ICustomerProfileClient _customerProfileClient;
-// //private readonly IReferralLeadService _referralLeadService;
-// private readonly IMapper _mapper;
-
-// public ReferralLeadsController(
-// //IReferralLeadService referralLeadService,
-// IPropertyPurchaseService propertyPurchaseService,
-// IOfferToPurchaseService offerToPurchaseService,
-// IDemoLeadService demoLeadService,
-// ISettingsService settingsService,
-// ICustomerProfileClient customerProfileClient,
-// IMapper mapper,
-// ILogFactory logFactory) : base(settingsService, logFactory)
-// {
-// _propertyPurchaseService = propertyPurchaseService;
-// _offerToPurchaseService = offerToPurchaseService;
-// //_referralLeadService = referralLeadService;
-// _mapper = mapper;
-// _demoLeadService = demoLeadService;
-// _customerProfileClient = customerProfileClient;
-// }
-
-// /////
-// ///// ReferralLeadCreateResponse.
-// //[HttpPost("")]
-// //[ProducesResponseType(typeof(ReferralLeadCreateResponse), (int)HttpStatusCode.OK)]
-// //public async Task PostAsync(ReferralLeadCreateRequest referralLeadCreate)
-// //{
-// // const string errorMessage = "An error occurred while creating referral lead";
-
-// // try
-// // {
-// // if (!Guid.TryParse(referralLeadCreate.CustomerId, out _))
-// // {
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.GuidCanNotBeParsed,
-// // ErrorMessage = "Customer id cannot be parsed."
-// // };
-// // }
-
-// // var customer = await _customerProfileClient.CustomerProfiles.GetByCustomerIdAsync(referralLeadCreate.CustomerId);
-// // // Hotel service handles customer == null properly, keep it simple for the demo mode
-// // if (customer?.Profile != null && IsDemoMode(customer.Profile.Email))
-// // {
-// // await _demoLeadService.CreateReferralLeadAsync(_mapper.Map(referralLeadCreate));
-// // return new ReferralLeadCreateResponse();
-// // }
-
-// // await _referralLeadService.CreateReferralLeadAsync(_mapper.Map(referralLeadCreate));
-// // }
-// // #region ErrorHandling
-// // catch (CustomerDoesNotExistException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.CustomerDoesNotExist, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (ReferralLeadConfirmationFailedException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.ReferralLeadProcessingFailed, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (ReferralLeadAlreadyConfirmedException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.ReferralLeadAlreadyConfirmed, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (CustomerNotApprovedAgentException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.CustomerNotApprovedAgent, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (CountryCodeDoesNotExistException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.CountryCodeDoesNotExist, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (ReferYourselfException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.ReferYourself, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (ReferralAlreadyExistException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.ReferralLeadAlreadyExist, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (InvalidPhoneNumberException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.InvalidPhoneNumber, ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (CampaignNotFoundException ex)
-// // {
-// // Log.Info(errorMessage, context: $"customerId: {referralLeadCreate.CustomerId}; error: {ex.Message}");
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.CampaignNotFound,
-// // ErrorMessage = ex.Message
-// // };
-// // }
-// // catch (InvalidReferralStakeException e)
-// // {
-// // Log.Info("Invalid stake.", e, process: nameof(ConfirmAsync));
-
-// // return new ReferralLeadCreateResponse
-// // {
-// // ErrorCode = ReferralErrorCodes.InvalidStake
-// // };
-// // }
-// // #endregion
-
-// // return new ReferralLeadCreateResponse();
-// //}
-
-// ///
-// /// ReferralLeadCreateResponse.
-// [HttpPut("confirm")]
-// [ProducesResponseType(typeof(void), (int)HttpStatusCode.NoContent)]
-// public async Task ConfirmAsync(ReferralLeadConfirmRequest referralLeadConfirmRequest)
-// {
-// try
-// {
-// if (referralLeadConfirmRequest.ConfirmationToken.EndsWith("_demo"))
-// {
-// await _demoLeadService.ConfirmReferralLeadAsync(referralLeadConfirmRequest.ConfirmationToken);
-// return new ReferralLeadConfirmResponse();
-// }
-
-// await _referralLeadService.ConfirmReferralLeadAsync(referralLeadConfirmRequest.ConfirmationToken);
-// }
-// catch (ReferralDoesNotExistException e)
-// {
-// Log.Info(e.Message, process: nameof(PostAsync), context: referralLeadConfirmRequest.ConfirmationToken);
-
-// return new ReferralLeadConfirmResponse
-// {
-// ErrorCode = ReferralErrorCodes.ReferralDoesNotExist,
-// ErrorMessage = "Referral Lead does not exist."
-// };
-// }
-// catch (ReferralAlreadyConfirmedException e)
-// {
-// Log.Info(e.Message, process: nameof(PostAsync), context: referralLeadConfirmRequest.ConfirmationToken);
-
-// return new ReferralLeadConfirmResponse
-// {
-// ErrorCode = ReferralErrorCodes.LeadAlreadyConfirmed,
-// ErrorMessage = "Referral Lead already confirmed."
-// };
-// }
-
-// return new ReferralLeadConfirmResponse();
-// }
-
-// [HttpPut("purchase")]
-// public async Task AddRealEstatePurchase(RealEstatePurchaseRequest request)
-// {
-// try
-// {
-// var campaignId = await _propertyPurchaseService.AddRealEstatePurchase(_mapper.Map(request));
-
-// return new RealEstatePurchaseResponse
-// {
-// CampaignId = campaignId,
-// ErrorCode = RealEstatePurchaseErrorCode.None
-// };
-// }
-// catch (ReferralDoesNotExistException e)
-// {
-// Log.Info(e.Message);
-
-// return new RealEstatePurchaseResponse
-// {
-// ErrorCode = RealEstatePurchaseErrorCode.ReferralNotFound
-// };
-// }
-// }
-
-// ///
-// /// ReferralLeadListResponse.
-// [HttpGet("")]
-// [ProducesResponseType(typeof(ReferralLeadListResponse), (int)HttpStatusCode.OK)]
-// public async Task GetAsync(string agentId)
-// {
-// if (!TryParseGuid(agentId, nameof(PostAsync), out var agentIdGuid))
-// {
-// return new ReferralLeadListResponse
-// {
-// ErrorCode = ReferralErrorCodes.GuidCanNotBeParsed,
-// ErrorMessage = InvalidIdentifierMessage
-// };
-// }
-
-// var result = await _referralLeadService.GetReferralLeadsForReferrerAsync(agentIdGuid, null, null);
-
-// return new ReferralLeadListResponse
-// {
-// ReferralLeads = _mapper.Map>(result)
-// };
-// }
-
-// ///
-// /// ApprovedReferralLeadListResponse.
-// [HttpGet("approved")]
-// [ProducesResponseType(typeof(ApprovedReferralLeadListResponse), (int)HttpStatusCode.OK)]
-// public async Task GetApprovedAsync()
-// {
-// var result = await _referralLeadService.GetApprovedLeadsAsync();
-
-// return new ApprovedReferralLeadListResponse
-// {
-// ReferralLeads = _mapper.Map>(result)
-// };
-// }
-
-// ///
-// /// PropertyPurchaseListResponse.
-// [HttpGet("property-purchases")]
-// [ProducesResponseType(typeof(PropertyPurchaseListResponse), (int)HttpStatusCode.OK)]
-// public async Task GetPropertyPurchasesAsync()
-// {
-// var result = await _propertyPurchaseService.GetPropertyPurchasesAsync();
-
-// return new PropertyPurchaseListResponse
-// {
-// PropertyPurchases = _mapper.Map>(result)
-// };
-// }
-
-// ///
-// /// LeadStatisticsResponse.
-// [HttpGet("statistic")]
-// [ProducesResponseType(typeof(LeadStatisticsResponse), (int)HttpStatusCode.OK)]
-// public async Task GetLeadStatisticAsync()
-// {
-// var result = await _referralLeadService.GetStatistic();
-
-// return _mapper.Map(result);
-// }
-
-// ///
-// /// OfferToPurchaseListResponse.
-// [HttpGet("offer-to-purchases")]
-// [ProducesResponseType(typeof(OfferToPurchaseListResponse), (int)HttpStatusCode.OK)]
-// public async Task GetOfferToPurchasesAsync()
-// {
-// var result = await _offerToPurchaseService.GetOffersToPurchasesAsync();
-
-// return new OfferToPurchaseListResponse
-// {
-// OfferToPurchases = _mapper.Map>(result)
-// };
-// }
-
-// //
-// [HttpGet("approved-referrals-count-by-agents")]
-// [ProducesResponseType(typeof(List), (int) HttpStatusCode.OK)]
-// public async Task> GetApprovedReferralsCountByAgentsAsync(List agentIds)
-// {
-// return (await _referralLeadService.GetApprovedReferralsCountByAgentsAsync(agentIds))
-// .Select(x => new ReferralLeadApprovedByAgentModel
-// {
-// AgentId = x.Key,
-// Count = x.Value
-// })
-// .ToList();
-// }
-// }
-//}
diff --git a/src/MAVN.Service.Referral/Models/Validation/ReferralLeadConfirmRequestValidator.cs b/src/MAVN.Service.Referral/Models/Validation/ReferralLeadConfirmRequestValidator.cs
deleted file mode 100644
index d687dc5..0000000
--- a/src/MAVN.Service.Referral/Models/Validation/ReferralLeadConfirmRequestValidator.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using FluentValidation;
-using JetBrains.Annotations;
-using MAVN.Service.Referral.Client.Models.Requests;
-
-namespace MAVN.Service.Referral.Models.Validation
-{
- [UsedImplicitly]
- public class ReferralLeadConfirmRequestValidator : AbstractValidator
- {
- public ReferralLeadConfirmRequestValidator()
- {
- RuleFor(x => x.ConfirmationToken)
- .NotNull()
- .NotEmpty()
- .WithMessage("Confirmation token id is required.");
- }
- }
-}
diff --git a/src/MAVN.Service.Referral/Models/Validation/ReferralLeadCreateRequestValidator.cs b/src/MAVN.Service.Referral/Models/Validation/ReferralLeadCreateRequestValidator.cs
deleted file mode 100644
index fd2e445..0000000
--- a/src/MAVN.Service.Referral/Models/Validation/ReferralLeadCreateRequestValidator.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System.Text.RegularExpressions;
-using FluentValidation;
-using JetBrains.Annotations;
-using MAVN.Service.Referral.Client.Models.Requests;
-
-namespace MAVN.Service.Referral.Models.Validation
-{
- [UsedImplicitly]
- public class ReferralLeadCreateRequestValidator : AbstractValidator
- {
- private static readonly Regex NameRegex = new Regex(@"^((?![1-9!@#$%^&*()_+{}|:\""?>,;[\]\\=~]).)+$");
-
- public ReferralLeadCreateRequestValidator()
- {
- RuleFor(x => x.CustomerId)
- .NotEmpty()
- .WithMessage("Customer id is required.");
-
- RuleFor(x => x.FirstName)
- .NotEmpty()
- .WithMessage("First name is required.")
- .MaximumLength(100)
- .WithMessage("First name shouldn't be more than 100 characters long.")
- .Must(o => NameRegex.IsMatch(o))
- .WithMessage("First name field can contains only letters, periods, hyphens and single quotes.");
-
- RuleFor(x => x.LastName)
- .NotEmpty()
- .WithMessage("Last name is required.")
- .MaximumLength(100)
- .WithMessage("First name shouldn't be more than 100 characters long.")
- .Must(o => NameRegex.IsMatch(o))
- .WithMessage("Last name field can contains only letters, periods, hyphens and single quotes.");
-
- RuleFor(x => x.PhoneCountryCodeId)
- .GreaterThan(0)
- .WithMessage("Phone country code id should be greater than 0.");
-
- RuleFor(x => x.PhoneNumber)
- .NotEmpty()
- .WithMessage("Phone number is required.")
- .Length(2, 50)
- .WithMessage("Phone number length should be in between 2 and 50 characters long.");
-
- RuleFor(x => x.Email)
- .NotEmpty()
- .WithMessage("Email is required.")
- .EmailAddress()
- .WithMessage("Email should be a valid email address.");
-
- RuleFor(o => o.Note)
- .MaximumLength(2000)
- .WithMessage("Note shouldn't be longer than 2000 characters.");
- }
- }
-}
diff --git a/src/MAVN.Service.Referral/Modules/ServiceModule.cs b/src/MAVN.Service.Referral/Modules/ServiceModule.cs
index caa6e0e..595b582 100644
--- a/src/MAVN.Service.Referral/Modules/ServiceModule.cs
+++ b/src/MAVN.Service.Referral/Modules/ServiceModule.cs
@@ -32,10 +32,6 @@ protected override void Load(ContainerBuilder builder)
.As()
.SingleInstance();
- builder.RegisterType()
- .As()
- .SingleInstance();
-
builder.RegisterType()
.As()
.WithParameter("hotelReferralConfirmEmailLinkFormat", _appSettings.CurrentValue.ReferralService.HotelReferralConfirmEmailSettings.ConfirmLinkFormat)
@@ -78,14 +74,6 @@ protected override void Load(ContainerBuilder builder)
.WithParameter("globalBaseCurrencyCode", _appSettings.CurrentValue.ReferralService.BaseCurrencyCode)
.SingleInstance();
- builder.RegisterType()
- .As()
- .SingleInstance();
-
- builder.RegisterType()
- .As()
- .SingleInstance();
-
builder.RegisterType()
.As()
.SingleInstance();
diff --git a/src/MAVN.Service.Referral/Profiles/ServiceProfile.cs b/src/MAVN.Service.Referral/Profiles/ServiceProfile.cs
index acb2e14..ad100f0 100644
--- a/src/MAVN.Service.Referral/Profiles/ServiceProfile.cs
+++ b/src/MAVN.Service.Referral/Profiles/ServiceProfile.cs
@@ -10,7 +10,7 @@
namespace MAVN.Service.Referral.Profiles
{
- public class ServiceProfile: Profile
+ public class ServiceProfile : Profile
{
public ServiceProfile()
{
@@ -26,46 +26,6 @@ public ServiceProfile()
.ForSourceMember(c => c.CustomerId, opt => opt.DoNotValidate())
.ForSourceMember(c => c.Id, opt => opt.DoNotValidate());
- // Referral lead
- CreateMap(MemberList.Source)
- .ForMember(c => c.AgentId, opt => opt.MapFrom(c => c.CustomerId))
- .ForMember(c => c.Id, opt => opt.Ignore())
- .ForMember(c => c.SalesforceId, opt => opt.Ignore())
- .ForMember(c => c.CreationDateTime, opt => opt.Ignore())
- .ForMember(c => c.ResponseStatus, opt => opt.Ignore())
- .ForMember(c => c.AgentSalesforceId, opt => opt.Ignore())
- .ForMember(c => c.ConfirmationToken, opt => opt.Ignore())
- .ForMember(c => c.State, opt => opt.Ignore());
-
- CreateMap(MemberList.Source)
- .ForMember(c => c.CustomerId, opt => opt.MapFrom(c => c.AgentId))
- .ForSourceMember(c => c.Id, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.SalesforceId, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.CreationDateTime, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.ResponseStatus, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.AgentSalesforceId, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.ConfirmationToken, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.State, opt => opt.DoNotValidate());
-
- CreateMap(MemberList.Source)
- .ForSourceMember(c => c.ResponseStatus, opt => opt.DoNotValidate());
-
- CreateMap(MemberList.Destination)
- .ForMember(c => c.ReferralLeadId, opt => opt.MapFrom(dest => dest.Id))
- .ForMember(c => c.Timestamp, opt => opt.MapFrom(dest => dest.CreationDateTime))
- .ForSourceMember(c => c.FirstName, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.LastName, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.PhoneCountryCodeId, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.PhoneNumber, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.Email, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.Note, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.AgentId, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.AgentSalesforceId, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.ResponseStatus, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.ConfirmationToken, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.State, opt => opt.DoNotValidate())
- .ForSourceMember(c => c.CreationDateTime, opt => opt.DoNotValidate());
-
// Property purchase
CreateMap(MemberList.Destination);
@@ -115,8 +75,6 @@ public ServiceProfile()
// Common Referrals
CreateMap(MemberList.Destination);
CreateMap(MemberList.Destination);
- CreateMap(MemberList.Source)
- .ConvertUsing(value => ConvertCommonReferralStatusToLeadState(value));
CreateMap(MemberList.Source)
.ConvertUsing(value => ConvertCommonReferralStatusToHotelState(value));
CreateMap(MemberList.Source)
@@ -124,17 +82,10 @@ public ServiceProfile()
CreateMap(MemberList.Source)
.ConvertUsing(value => ConvertHotelStateToCommonReferralStatus(value));
- CreateMap(MemberList.Source)
- .ConvertUsing(value => ConvertLeadStateToCommonReferralStatus(value));
+
CreateMap(MemberList.Source)
.ConvertUsing(value => ConvertFriendStateToCommonReferralStatus(value));
- CreateMap(MemberList.Destination)
- .ForMember(dest => dest.TimeStamp, opt => opt.MapFrom(src => src.CreationDateTime))
- .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.State))
- .ForMember(dest => dest.ReferralType, opt => opt.MapFrom(src => ReferralType.RealEstate))
- .ForMember(dest => dest.PartnerId, opt => opt.Ignore());
-
CreateMap(MemberList.Destination)
.ForMember(dest => dest.TimeStamp, opt => opt.MapFrom(src => src.CreationDateTime))
.ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.State))
@@ -216,21 +167,6 @@ private ReferralFriendState ConvertCommonReferralStatusToFriendState(CommonRefer
}
}
- private Domain.Entities.ReferralLeadState ConvertCommonReferralStatusToLeadState(CommonReferralStatus value)
- {
- switch (value)
- {
- case CommonReferralStatus.Pending:
- return Domain.Entities.ReferralLeadState.Pending;
- case CommonReferralStatus.Confirmed:
- return Domain.Entities.ReferralLeadState.Confirmed;
- case CommonReferralStatus.Accepted:
- return Domain.Entities.ReferralLeadState.Approved;
- default:
- return Domain.Entities.ReferralLeadState.Rejected;
- }
- }
-
private CommonReferralStatus ConvertHotelStateToCommonReferralStatus(ReferralHotelState value)
{
switch (value)
@@ -261,19 +197,6 @@ private ReferralHotelState ConvertCommonReferralStatusToHotelState(CommonReferra
}
}
- private CommonReferralStatus ConvertLeadStateToCommonReferralStatus(Domain.Entities.ReferralLeadState value)
- {
- switch (value)
- {
- case Domain.Entities.ReferralLeadState.Pending:
- return CommonReferralStatus.Pending;
- case Domain.Entities.ReferralLeadState.Confirmed:
- return CommonReferralStatus.Confirmed;
- case Domain.Entities.ReferralLeadState.Approved:
- return CommonReferralStatus.Accepted;
- default:
- return CommonReferralStatus.Expired;
- }
- }
}
}
+
diff --git a/tests/MAVN.Service.Referral.Tests/DomainServices/Services/CommonReferralServiceTestsFixture.cs b/tests/MAVN.Service.Referral.Tests/DomainServices/Services/CommonReferralServiceTestsFixture.cs
index 10a42e4..8ae0e9c 100644
--- a/tests/MAVN.Service.Referral.Tests/DomainServices/Services/CommonReferralServiceTestsFixture.cs
+++ b/tests/MAVN.Service.Referral.Tests/DomainServices/Services/CommonReferralServiceTestsFixture.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using MAVN.Service.Referral.Domain.Entities;
using MAVN.Service.Referral.Domain.Models;
using MAVN.Service.Referral.Domain.Services;
using MAVN.Service.Referral.DomainServices.Services;
@@ -22,7 +21,6 @@ public CommonReferralServiceTestsFixture()
FriendReferralServiceMock.Object,
MapperHelper.CreateAutoMapper());
- ReferralLeadList = new List();
ReferralHotelList = new List();
ReferralFriendList = new List();
@@ -33,21 +31,14 @@ public CommonReferralServiceTestsFixture()
//public Mock ReferralLeadServiceMock;
public Mock ReferralHotelsServiceMock;
public CommonReferralService Service;
- public List ReferralLeadList;
public List ReferralHotelList;
public List ReferralFriendList { get; set; }
public void SetupCalls()
{
- //ReferralLeadServiceMock.Setup(c => c.GetReferralLeadsForReferrerAsync(It.IsAny(), It.IsAny(), It.IsAny>()))
- // .ReturnsAsync(() => ReferralLeadList);
-
ReferralHotelsServiceMock.Setup(c => c.GetByReferrerIdAsync(It.IsAny(), It.IsAny(), It.IsAny