public IHttpActionResult CloseSubscription([FromBody] UpdateSubscriptionEntryDTO value) { if (value.Type == UserSubscriptionType.Organisation) { var subscription = UnitOfWork.SubscriptionsRepository.Find(value.RecordId); if (subscription == null) { return(NotFound()); } if (!subscription.IsActive) { return(BadRequest("Subscription entry already closed")); } subscription.EndDate = DateTimeService.UtcNow; subscription.IsActive = false; UnitOfWork.SubscriptionsRepository.InsertOrUpdate(subscription); } else { var payment = UnitOfWork.PaymentsRepository.Find(value.RecordId); if (payment == null) { return(NotFound()); } if (!payment.Subscriptions.Any(x => x.IsActive == true)) { return(BadRequest("Subscription entry already closed")); } foreach (var subscription in payment.Subscriptions) { subscription.IsActive = false; } UnitOfWork.PaymentsRepository.InsertOrUpdate(payment); } try { UnitOfWork.Save(); return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult RemoveSubscription([FromBody] UpdateSubscriptionEntryDTO value) { if (value.Type == UserSubscriptionType.Organisation) { UnitOfWork.SubscriptionsRepository.Delete(value.RecordId); } else { UnitOfWork.PaymentsRepository.Delete(value.RecordId); } try { UnitOfWork.Save(); return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }