public ActionResult ReopenOpportunity(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var serviceContext = portal.ServiceContext; var adapter = new CoreDataAdapter(portal, serviceContext); var opportunityEntity = serviceContext.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("opportunityid") == entityReference.Id); var isPartnerCreated = opportunityEntity.GetAttributeValue <bool>("adx_partnercreated"); if (isPartnerCreated) { adapter.SetState(entityReference, (int)OpportunityState.Open, (int)OpportunityStatusCode.InProgress); } else { adapter.SetState(entityReference, (int)OpportunityState.Open, (int)OpportunityStatusCode.Accepted); } var entity = serviceContext.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("opportunityid") == entityReference.Id); serviceContext.TryRemoveFromCache(entity); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult LoseOpportunity(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var serviceContext = portal.ServiceContext; var entityPermissionProvider = new CrmEntityPermissionProvider(); if (!entityPermissionProvider.PermissionsExist) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Entity_Permissions_Have_Not_Been_Defined_Message"))); } var entity = serviceContext.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("opportunityid") == entityReference.Id); var test = entityPermissionProvider.TryAssert(serviceContext, CrmEntityPermissionRight.Write, entity); if (!test) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("DoNot_Have_Appropriate_Permissions"))); } var adapter = new CoreDataAdapter(portal, serviceContext); adapter.LoseOpportunity(entityReference); serviceContext.TryRemoveFromCache(entity); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult CloseCase(EntityReference entityReference, string resolutionSubject, string resolutionDescription) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var context = portal.ServiceContext; var entityPermissionProvider = new CrmEntityPermissionProvider(); if (!entityPermissionProvider.PermissionsExist) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Entity_Permissions_Have_Not_Been_Defined_Message"))); } var entity = context.RetrieveSingle(entityReference.LogicalName, FetchAttribute.None, new Condition("incidentid", ConditionOperator.Equal, entityReference.Id)); var test = entityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Write, entity); if (!test) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("DoNot_Have_Appropriate_Permissions"))); } var adapter = new CoreDataAdapter(portal, context); adapter.CloseIncident(entityReference, resolutionSubject, resolutionDescription); if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage)) { PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Case, this.HttpContext, "close_incident", 1, entity.ToEntityReference(), "edit"); } return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult ConvertOrderToInvoice(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var context = portal.ServiceContext; var crmEntityPermissionProvider = new CrmEntityPermissionProvider(); if (!crmEntityPermissionProvider.PermissionsExist) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Entity_Permissions_Have_Not_Been_Defined_Message"))); } var salesorder = context.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("salesorderid") == entityReference.Id); if (!crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Write, salesorder) || !crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Create, "invoice")) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("DoNot_Have_Appropriate_Permissions"))); } var adapter = new CoreDataAdapter(portal, context); adapter.ConvertSalesOrderToInvoice(entityReference); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult QualifyLead(EntityReference entityReference, bool createAccount, bool createContact, bool createOpportunity) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var context = portal.ServiceContext; var crmEntityPermissionProvider = new CrmEntityPermissionProvider(); if (!crmEntityPermissionProvider.PermissionsExist) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Entity_Permissions_Have_Not_Been_Defined_Message"))); } var lead = context.RetrieveSingle(entityReference.LogicalName, FetchAttribute.None, new Condition("leadid", ConditionOperator.Equal, entityReference.Id)); if (!crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Write, lead) || !crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Create, "contact") || !crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Create, "account") || !crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Create, "opportunity")) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("DoNot_Have_Appropriate_Permissions"))); } var adapter = new CoreDataAdapter(portal, context); adapter.QualifyLead(entityReference, createAccount, createContact, createOpportunity, null, null); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult SetState(EntityReference entityReference, int stateCode, int statusReason) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var context = portal.ServiceContext; var adapter = new CoreDataAdapter(portal, context); adapter.SetState(entityReference, stateCode, statusReason); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult SetOpportunityOnHold(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var serviceContext = portal.ServiceContext; var adapter = new CoreDataAdapter(portal, serviceContext); adapter.SetState(entityReference, (int)OpportunityState.Open, (int)OpportunityStatusCode.OnHold); var entity = serviceContext.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("opportunityid") == entityReference.Id); serviceContext.TryRemoveFromCache(entity); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
internal static void CalculateValueOpportunity() { if (string.IsNullOrEmpty(HttpContext.Current.Request["refid"])) { return; } var targetEntityId = HttpContext.Current.Request["refid"]; var portal = PortalCrmConfigurationManager.CreatePortalContext(); var serviceContext = portal.ServiceContext; var adapter = new CoreDataAdapter(portal, serviceContext); Guid id; if (!Guid.TryParse(targetEntityId, out id)) { return; } if (string.IsNullOrEmpty(HttpContext.Current.Request["refentity"])) { return; } var entityReference = new EntityReference(HttpContext.Current.Request["refentity"], id); adapter.CalculateActualValueOfOpportunity(entityReference); var entity = serviceContext.CreateQuery(entityReference.LogicalName) .FirstOrDefault(e => e.GetAttributeValue <Guid>("opportunityid") == entityReference.Id); if (entity == null) { return; } serviceContext.TryRemoveFromCache(entity); serviceContext.UpdateObject(entity); serviceContext.SaveChanges(); }
public ActionResult CalculateActualValueOfOpportunity(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var serviceContext = portal.ServiceContext; var adapter = new CoreDataAdapter(portal, serviceContext); adapter.CalculateActualValueOfOpportunity(entityReference); var entity = serviceContext.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("opportunityid") == entityReference.Id); serviceContext.TryRemoveFromCache(entity); serviceContext.UpdateObject(entity); serviceContext.SaveChanges(); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult GenerateQuoteFromOpportunity(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var context = portal.ServiceContext; var crmEntityPermissionProvider = new CrmEntityPermissionProvider(); var opportunity = context.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("opportunityid") == entityReference.Id); if (!crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Write, opportunity) || !crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Create, "quote")) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("DoNot_Have_Appropriate_Permissions"))); } var adapter = new CoreDataAdapter(portal, context); adapter.GenerateQuoteFromOpportunity(entityReference); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult Deactivate(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var serviceContext = portal.ServiceContext; var entityPermissionProvider = new CrmEntityPermissionProvider(); if (!entityPermissionProvider.PermissionsExist) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Entity_Permissions_Have_Not_Been_Defined_Message"))); } var entityPrimaryKey = MetadataHelper.GetEntityPrimaryKeyAttributeLogicalName(serviceContext, entityReference.LogicalName); var entity = serviceContext.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>(entityPrimaryKey) == entityReference.Id); try { if (!entityPermissionProvider.TryAssert(serviceContext, CrmEntityPermissionRight.Write, entity)) { Response.StatusCode = (int)HttpStatusCode.Forbidden; return(Json(new { Message = ResourceManager.GetString("DoNot_Have_Appropriate_Permissions") })); } } catch (InvalidOperationException) { Response.StatusCode = (int)HttpStatusCode.Forbidden; return(Json(new { Message = ResourceManager.GetString("DoNot_Have_Appropriate_Permissions") })); } var adapter = new CoreDataAdapter(portal, serviceContext); adapter.SetState(entityReference, (int)StandardState.Inactive, (int)StandardStatusCode.Inactive); serviceContext.TryRemoveFromCache(entity); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
public ActionResult ConvertQuoteToOrder(EntityReference entityReference) { var portal = PortalCrmConfigurationManager.CreatePortalContext(); var context = portal.ServiceContext; var crmEntityPermissionProvider = new CrmEntityPermissionProvider(); if (!crmEntityPermissionProvider.PermissionsExist) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Entity_Permissions_Have_Not_Been_Defined_Message"))); } var quote = context.CreateQuery(entityReference.LogicalName).First(e => e.GetAttributeValue <Guid>("quoteid") == entityReference.Id); if (!crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Write, quote) || !crmEntityPermissionProvider.TryAssert(context, CrmEntityPermissionRight.Create, "salesorder")) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("DoNot_Have_Appropriate_Permissions"))); } var adapter = new CoreDataAdapter(portal, context); var status = quote.GetAttributeValue <OptionSetValue>("statecode").Value; if (status != (int)QuoteState.Active) { adapter.SetState(entityReference, (int)QuoteState.Active, (int)QuoteStatusCode.InProgressActive); } if (status != (int)QuoteState.Won) { adapter.WinQuote(entityReference); } adapter.CovertQuoteToSalesOrder(entityReference); return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }
protected void Page_Load(object sender, EventArgs e) { Target = GetTargetEntityReference(); if (Target == null) { Payment.Visible = false; GeneralErrorMessage.Visible = true; return; } Guid quoteId; if (IsPostBack && Guid.TryParse(QuoteId.Value, out quoteId)) { WebForm.CurrentSessionHistory.QuoteId = quoteId; } var dataAdapterDependencies = new Adxstudio.Xrm.Commerce.PortalConfigurationDataAdapterDependencies(PortalName, Request.RequestContext); var dataAdapter = CreatePurchaseDataAdapter(Target, CurrentStepEntityPrimaryKeyLogicalName); Purchasable = dataAdapter.Select(); if (Purchasable == null) { Payment.Visible = false; GeneralErrorMessage.Visible = true; return; } // If the session quote is not the purchase quote, update and persist the session, as // there won't necessarily be a postback to save the session later. if (WebForm.CurrentSessionHistory.QuoteId != Purchasable.Quote.Id) { WebForm.CurrentSessionHistory.QuoteId = Purchasable.Quote.Id; WebForm.SaveSessionHistory(dataAdapterDependencies.GetServiceContext()); } QuoteId.Value = Purchasable.Quote.Id.ToString(); if (Purchasable.TotalAmount == 0) { var portal = PortalCrmConfigurationManager.CreatePortalContext(PortalName); var context = dataAdapterDependencies.GetServiceContext(); var quote = context.CreateQuery("quote").First(q => q.GetAttributeValue <Guid>("quoteid") == Purchasable.Quote.Id); var adapter = new CoreDataAdapter(portal, context); var status = quote.GetAttributeValue <OptionSetValue>("statecode").Value; if (status != (int)QuoteState.Active) { adapter.SetState(quote.ToEntityReference(), (int)QuoteState.Active, (int)QuoteStatusCode.InProgressActive); } if (status != (int)QuoteState.Won) { adapter.WinQuote(quote.ToEntityReference()); } adapter.CovertQuoteToSalesOrder(quote.ToEntityReference()); dataAdapter.CompletePurchase(); SetAttributeValuesAndSave(); MoveToNextStep(); return; } if (Paid) { dataAdapter.CompletePurchase(); SetAttributeValuesAndSave(); MoveToNextStep(); return; } Payment.Visible = true; GeneralErrorMessage.Visible = false; if (IsPaymentError) { SetErrorFields(); } SetMerchantShippingFields(ServiceContext.CreateQuery("quote").FirstOrDefault(q => q.GetAttributeValue <Guid>("quoteid") == Purchasable.Quote.Id)); if (IsPaymentAuthorizeNet || IsPaymentDemo) { CreditCardPaymentPanel.Visible = true; PayPalPaymentPanel.Visible = false; SetMerchantFields(); PopulateContactInfo(Contact); EnableTestMode(TestModeEnabled); PurchaseDiscounts.DataSource = Purchasable.Discounts; PurchaseDiscounts.DataBind(); PurchaseItems.DataSource = Purchasable.Items.Where(item => item.IsSelected && item.Quantity > 0); PurchaseItems.DataBind(); } else if (IsPaymentPaypal) { PayPalPaymentPanel.Visible = true; CreditCardPaymentPanel.Visible = false; PayPalPurchaseDiscounts.DataSource = Purchasable.Discounts; PayPalPurchaseDiscounts.DataBind(); PayPalPurchaseItems.DataSource = Purchasable.Items.Where(item => item.IsSelected && item.Quantity > 0); PayPalPurchaseItems.DataBind(); } }