public static CampaignDTO CampaignToDTO(Campaign Campaign) { if (Campaign == null) return null; Mapper.CreateMap<Campaign, CampaignDTO>(); CampaignDTO CampaignDTO = Mapper.Map<CampaignDTO>(Campaign); return CampaignDTO; }
//Create Camoaign public static int Create(CampaignDTO campaignDTO) { try { GlobalSettings.LoggedInClientId = campaignDTO.ClientId; GlobalSettings.LoggedInUserId = campaignDTO.CreatedBy; ClientDTO ClientDTO = new ClientDTO(); ClientDTO = ClientService.GetById(campaignDTO.ClientId); int PartnerId = ClientDTO.PartnerId;// ClientService.GetById(campaignDTO.ClientId).PartnerId; GlobalSettings.LoggedInPartnerId = PartnerId; //If SMS Credit balance is low then should not create campaign if (ClientDTO.SMSCredit < campaignDTO.ConsumedCredits) { return 0; } var campaign = new Campaign(); SettingDTO SettingDTO = new SettingDTO(); SettingDTO = SettingService.GetById(1); UnitOfWork uow = new UnitOfWork(); if (campaignDTO.RecipientsNumber != null && campaignDTO.RecipientsNumber != "") { campaignDTO.RecipientsNumber = CommonService.RemoveDuplicateMobile(campaignDTO.RecipientsNumber); } //Get Message Count if (campaignDTO.IsUnicode != true) { campaignDTO.MessageCount = CommonService.GetMessageCount(campaignDTO.Message); } else { campaignDTO.MessageCount = CommonService.GetUnicodeMessageCount(campaignDTO.Message); } campaignDTO.IPAddress = CommonService.GetIP(); if (campaignDTO.GroupId == null) { campaignDTO.RecipientsCount = CommonService.GetRecipientsCount(campaignDTO.RecipientsNumber); campaignDTO.RequiredCredits = (campaignDTO.RecipientsCount * campaignDTO.MessageCount) * SettingDTO.NationalCampaignSMSCount; campaignDTO.CreditsDiffrence = campaignDTO.ConsumedCredits - campaignDTO.RequiredCredits; } if (campaignDTO.ForAllContact == true) { campaignDTO.RecipientsNumber = ContactService.GetAllReceipentNumberByClientId(campaignDTO.ClientId); campaignDTO.RecipientsCount = CommonService.GetRecipientsCount(campaignDTO.RecipientsNumber); campaignDTO.RequiredCredits = (campaignDTO.RecipientsCount * campaignDTO.MessageCount) * SettingDTO.NationalCampaignSMSCount; campaignDTO.GroupId = null; campaignDTO.RecipientsNumber = ""; campaignDTO.CreditsDiffrence = campaignDTO.ConsumedCredits - campaignDTO.RequiredCredits; } if (campaignDTO.GroupId > 0) { campaignDTO.RequiredCredits = (campaignDTO.RecipientsCount * campaignDTO.MessageCount) * SettingDTO.NationalCampaignSMSCount; } campaignDTO.IsReconcile = false; campaignDTO.ReconcileDate = System.DateTime.Now.Date; campaign = Transform.CampaignToDomain(campaignDTO); uow.CampaignRepo.Insert(campaign); uow.SaveChanges(); // Deduct SMS credit balance campaignDTO.Id = campaign.Id; ClientDTO.SMSCredit = ClientDTO.SMSCredit - campaignDTO.ConsumedCredits; ClientService.Edit(ClientDTO); return campaignDTO.Id; } catch (Exception) { throw; } }
//Create Campaign for Backend process public static int CreateCampaignFromBackend(CampaignDTO campaignDTO) { try { GlobalSettings.LoggedInClientId = campaignDTO.ClientId; GlobalSettings.LoggedInUserId = campaignDTO.CreatedBy; ClientDTO ClientDTO = new ClientDTO(); ClientDTO = ClientService.GetById(campaignDTO.ClientId); int PartnerId = ClientDTO.PartnerId;// ClientService.GetById(campaignDTO.ClientId).PartnerId; GlobalSettings.LoggedInPartnerId = PartnerId; //If SMS Credit balance is low then should not create campaign if (ClientDTO.SMSCredit < campaignDTO.ConsumedCredits) { return 0; } var campaign = new Campaign(); SettingDTO SettingDTO = new SettingDTO(); SettingDTO = SettingService.GetById(1); UnitOfWork uow = new UnitOfWork(); if (campaignDTO.RecipientsNumber != null) { campaignDTO.RecipientsNumber = CommonService.RemoveDuplicateMobile(campaignDTO.RecipientsNumber); } //Get Message Count if (campaignDTO.IsUnicode != true) { campaignDTO.MessageCount = CommonService.GetMessageCount(campaignDTO.Message); } else { campaignDTO.MessageCount = CommonService.GetUnicodeMessageCount(campaignDTO.Message); } if (campaignDTO.GroupId == null) { campaignDTO.RecipientsCount = CommonService.GetRecipientsCount(campaignDTO.RecipientsNumber); campaignDTO.RequiredCredits = (campaignDTO.RecipientsCount * campaignDTO.MessageCount) * SettingDTO.NationalCampaignSMSCount; } campaignDTO.IsReconcile = false; campaignDTO.ReconcileDate = System.DateTime.Now.Date; //Calculate consumed credits double ConsumedCreditPerOneMsg = CommonService.GetConsumedCreditsForOneMessage(campaignDTO.Message, false); int RecepientsCount = CommonService.GetRecipientsCount(campaignDTO.RecipientsNumber); campaignDTO.ConsumedCredits = RecepientsCount * ConsumedCreditPerOneMsg; campaign = Transform.CampaignToDomain(campaignDTO); uow.CampaignRepo.Insert(campaign); uow.SaveChanges(); campaignDTO.Id = campaign.Id; //Deduct clients balance ClientDTO.SMSCredit = ClientDTO.SMSCredit - campaignDTO.ConsumedCredits; ClientService.Edit(ClientDTO); return campaignDTO.Id; } catch (Exception) { throw; } }
//Get Client's Latest Activities public static List<ActivityLogDTO> GetClientLatestActivities(int ClientId, int Top) { List<ActivityLogDTO> ActivityLogDTOList = new List<ActivityLogDTO>(); try { using (var uow = new UnitOfWork()) { // DateTime yesterdayDate = DateTime.Now.AddDays(-Top).Date; //var LogList = uow.ActivityLogRepo.Get(c => c.Date > yesterdayDate).ToList(); var LogList = uow.ActivityLogRepo.GetAll().Where(e => e.ClientId == Convert.ToInt32(ClientId)).OrderByDescending(e => e.Id).ToList(); int i = 0; int j = 0; foreach (var log in LogList) { j = 0; if (log.EntityType == "GroupContact" || log.EntityType == "CampaignLogXML" || log.EntityType == "CampaignLog" || log.EntityType == "Coupon") { continue; } if (log.EntityType == "Campaign") //&& log.OperationType == "Added" || log.OperationType == "Modified" { Campaign Campaign = new Campaign(); Campaign = uow.CampaignRepo.GetById(log.EntityId); if (Campaign != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = Campaign.Name; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "Client") //&& log.OperationType == "Added" || log.OperationType == "Modified" { Client Client = new Client(); Client = uow.ClientRepo.GetById(log.EntityId); if (Client != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = Client.Company; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "Contact") //&& log.OperationType == "Added" || log.OperationType == "Modified" { Contact Contact = new Contact(); Contact = uow.ContactRepo.GetById(log.EntityId); if (Contact != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = Contact.Name; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "CreditRequest") //&& log.OperationType == "Added" || log.OperationType == "Modified" { CreditRequest CreditRequest = new CreditRequest(); CreditRequest = uow.CreditRequestRepo.GetById(log.EntityId); if (CreditRequest != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = "";// "Credit Request";// uow.CreditRequestRepo.GetById(Convert.ToInt32(log.UserId)).Name; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "Document")// && log.OperationType == "Added" || log.OperationType == "Modified") { Document Document = new Document(); Document = uow.DocumentRepo.GetById(log.EntityId); if (Document != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = Document.FileName; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "EcouponCampaign")// && log.OperationType == "Added" || log.OperationType == "Modified") { EcouponCampaign EcouponCampaign = new EcouponCampaign(); EcouponCampaign = uow.EcouponCampaignRepo.GetById(log.EntityId); if (EcouponCampaign != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = EcouponCampaign.Title; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "Group")// && log.OperationType == "Added" || log.OperationType == "Modified") { Group Group = new Group(); Group = uow.GroupRepo.GetById(log.EntityId); if (Group != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = Group.Name; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } //if (log.EntityType == "Partner")// && log.OperationType == "Added" || log.OperationType == "Modified") //{ // Partner Partner = new Partner(); // Partner = uow.PartnerRepo.GetById(log.EntityId); // if (Partner != null) // { // ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); // if (log.UserId != null) // { // ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; // } // if (log.PartnerId != null) // { // ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; // } // if (log.ClientId != null) // { // ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; // } // ActivityLogDTO.EntityName = Partner.Name; // ActivityLogDTO.Date = log.Date; // ActivityLogDTO.EntityType = log.EntityType; // ActivityLogDTO.OperationType = log.OperationType; // ActivityLogDTO.Id = log.Id; // ActivityLogDTOList.Add(ActivityLogDTO); // j = 1; // } //} //if (log.EntityType == "Plan")// && log.OperationType == "Added" || log.OperationType == "Modified") //{ // Plan Plan = new Plan(); // Plan = uow.PlanRepo.GetById(log.EntityId); // if (Plan != null) // { // ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); // if (log.UserId != null) // { // ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; // } // if (log.PartnerId != null) // { // ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; // } // if (log.ClientId != null) // { // ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; // } // ActivityLogDTO.EntityName = Plan.Title; // ActivityLogDTO.Date = log.Date; // ActivityLogDTO.EntityType = log.EntityType; // ActivityLogDTO.OperationType = log.OperationType; // ActivityLogDTO.Id = log.Id; // ActivityLogDTOList.Add(ActivityLogDTO); // j = 1; // } //} if (log.EntityType == "RedeemedCount")// && log.OperationType == "Added" || log.OperationType == "Modified") { RedeemedCount RedeemedCount = new RedeemedCount(); RedeemedCount = uow.RedeemedCountRepo.GetById(log.EntityId); if (RedeemedCount != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = "";// "Redeemed Count";// uow.RedeemedCountRepo.GetById(Convert.ToInt32(log.UserId)).Title; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "Setting")// && log.OperationType == "Added" || log.OperationType == "Modified") { Setting Setting = new Setting(); Setting = uow.SettingRepo.GetById(log.EntityId); if (Setting != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = "";// "Setting";//uow.SettingRepo.GetById(Convert.ToInt32(log.UserId)).Title; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "Template")// && log.OperationType == "Added" || log.OperationType == "Modified") { Template Template = new Template(); Template = uow.TemplateRepo.GetById(log.EntityId); if (Template != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = Template.Title; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "User")// && log.OperationType == "Added" || log.OperationType == "Modified") { User User = new User(); User = uow.UserRepo.GetById(log.EntityId); if (User != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = User.Name; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } if (log.EntityType == "Location")// && log.OperationType == "Added" || log.OperationType == "Modified") { Location Location = new Location(); Location = uow.LocationRepo.GetById(log.EntityId); if (Location != null) { ActivityLogDTO ActivityLogDTO = new ActivityLogDTO(); if (log.UserId != null) { ActivityLogDTO.User = uow.UserRepo.GetById(Convert.ToInt32(log.UserId)).Name; } if (log.PartnerId != null) { ActivityLogDTO.Partner = uow.PartnerRepo.GetById(Convert.ToInt32(log.PartnerId)).Name; } if (log.ClientId != null) { ActivityLogDTO.Client = uow.ClientRepo.GetById(Convert.ToInt32(log.ClientId)).Company; } ActivityLogDTO.EntityName = Location.Name; ActivityLogDTO.Date = log.Date; ActivityLogDTO.EntityType = log.EntityType; ActivityLogDTO.OperationType = log.OperationType; ActivityLogDTO.Id = log.Id; ActivityLogDTOList.Add(ActivityLogDTO); j = 1; } } i = i + j; if (i >= Top) { return ActivityLogDTOList; } } } return ActivityLogDTOList; } catch (Exception) { //return ActivityLogDTOList; throw; } }