/// <summary> /// Gets the plan detail by plan gu identifier. /// </summary> /// <param name="planGuId">The plan gu identifier.</param> /// <returns> Plans.</returns> public PlansModel GetPlanDetailByPlanGuId(Guid planGuId) { var existingPlan = this.plansRepository.GetByInternalReference(planGuId); var planAttributes = this.plansRepository.GetPlanAttributes(planGuId, existingPlan.OfferId); var planEvents = this.plansRepository.GetEventsByPlan(planGuId, existingPlan.OfferId); var offerDetails = this.offerRepository.GetOfferById(existingPlan.OfferId); PlansModel plan = new PlansModel { Id = existingPlan.Id, PlanId = existingPlan.PlanId, IsmeteringSupported = existingPlan.IsmeteringSupported, OfferID = existingPlan.OfferId, DisplayName = existingPlan.DisplayName, Description = existingPlan.Description, PlanGUID = existingPlan.PlanGuid, OfferName = offerDetails.OfferName, }; plan.PlanAttributes = new List <PlanAttributesModel>(); foreach (var attribute in planAttributes) { PlanAttributesModel planAttributesmodel = new PlanAttributesModel() { OfferAttributeId = attribute.OfferAttributeId, PlanAttributeId = attribute.PlanAttributeId, PlanId = existingPlan.PlanGuid, DisplayName = attribute.DisplayName, IsEnabled = attribute.IsEnabled, Type = attribute.Type, }; plan.PlanAttributes.Add(planAttributesmodel); } plan.PlanEvents = new List <PlanEventsModel>(); foreach (var events in planEvents) { PlanEventsModel planEventsModel = new PlanEventsModel() { Id = events.Id, PlanId = events.PlanId, Isactive = events.Isactive, SuccessStateEmails = events.SuccessStateEmails, FailureStateEmails = events.FailureStateEmails, EventName = events.EventsName, EventId = events.EventId, CopyToCustomer = events.CopyToCustomer, }; plan.PlanEvents.Add(planEventsModel); } return(plan); }
/// <summary> /// Saves the plan events. /// </summary> /// <param name="planEvents">The plan events.</param> /// <returns> plan Events Id.</returns> public int?SavePlanEvents(PlanEventsModel planEvents) { if (planEvents != null) { PlanEventsMapping events = new PlanEventsMapping(); events.Id = planEvents.Id; events.Isactive = planEvents.Isactive; events.PlanId = planEvents.PlanId; events.SuccessStateEmails = planEvents.SuccessStateEmails; events.FailureStateEmails = planEvents.FailureStateEmails; events.EventId = planEvents.EventId; events.UserId = planEvents.UserId; events.CreateDate = DateTime.Now; events.CopyToCustomer = planEvents.CopyToCustomer; var planEventsId = this.plansRepository.AddPlanEvents(events); return(planEventsId); } return(null); }
/// <summary> /// Gets the events by plan. /// </summary> /// <param name="planGuId">The plan gu identifier.</param> /// <param name="offerId">The offer identifier.</param> /// <returns> Plan Events Model.</returns> public IEnumerable <PlanEventsModel> GetEventsByPlan(Guid planGuId, Guid offerId) { try { var allEvents = this.context.PlanEventsOutPut.FromSqlRaw("dbo.spGetPlanEvents {0}", planGuId).ToList(); List <PlanEventsModel> eventsList = new List <PlanEventsModel>(); if (allEvents != null && allEvents.Count() > 0) { foreach (var events in allEvents) { PlanEventsModel planEvent = new PlanEventsModel(); planEvent.Id = events.Id; planEvent.PlanId = events.PlanId; planEvent.Isactive = events.Isactive; planEvent.SuccessStateEmails = events.SuccessStateEmails; planEvent.FailureStateEmails = events.FailureStateEmails; planEvent.EventsName = events.EventsName; planEvent.EventId = events.EventId; planEvent.CopyToCustomer = events.CopyToCustomer ?? false; if (planEvent.EventsName != "Pending Activation") { eventsList.Add(planEvent); } else if (!Convert.ToBoolean(this.applicationConfigRepository.GetValueByName("IsAutomaticProvisioningSupported"))) { eventsList.Add(planEvent); } } } return(eventsList); } catch (Exception ex) { throw ex; } }