public async Task <ResponseData <bool> > UpdateAppliance(string subscriptionId, string update) { try { var accountAppliance = _accountApplianceService.GetAccountApplianceBySubScription(subscriptionId); var appliance = _applianceService.GetApplianceById(accountAppliance.FirstOrDefault().ApplianceId.Value); var response = new ResponseData <bool>(); var thingFind = await TelitApi.ThingFind(appliance.SerialNumber); Telit.ThingFind.Params _params = new Telit.ThingFind.Params(); _params = thingFind.Things.@params; var success = await TelitApi.UpdateStatusOfAppliance(_params.iccid, update == Configuration.Disable?true : false); if (success) { appliance.Status = update == Configuration.Enable ? true : false; _applianceService.Update(appliance); if (!appliance.Status.Value) { accountAppliance.FirstOrDefault().SubscriptionId = null; _accountApplianceService.Update(accountAppliance.FirstOrDefault()); } response.Message = ResponseMessage.Success; } else { response.Message = ResponseMessage.Error; } response.Status = ResponseStatus.Success.ToString(); return(response); } catch (Exception ex) { var response = new ResponseData <bool>(); response.Message = ex.Message; response.Status = ResponseStatus.Error.ToString(); return(response); } }
public ResponseData <AccountDTO> UpdateUser(string applianceId, string currenctUserId, string accountId, string firstName, string lastName, string isVerified) { try { var account = _accountService.GetAccountById(Convert.ToInt64(accountId)); account.FirstName = firstName; account.LastName = lastName; _accountService.Update(account); bool temp = Convert.ToBoolean(isVerified); var accountAppliance = _accountApplianceService.GetAccountApplianceByAccountIdAndApplianceId(Convert.ToInt64(accountId), Convert.ToInt64(applianceId)); var appliance = _applianceService.GetApplianceById(Convert.ToInt64(applianceId)); if (temp != accountAppliance.IsVerified) { accountAppliance.IsVerified = temp; var _event = new Event() { AccountId = Convert.ToInt64(currenctUserId), ApplianceId = Convert.ToInt64(applianceId), EventTypeId = Constant.EventType.AccountVerifyForAppliance, Timestamp = DateTime.UtcNow, Message = appliance.DeviceName + "(" + appliance.SerialNumber.Substring(appliance.SerialNumber.Length - 4) + ")" + ": " + (temp ? "Add " + account.PhoneNumber : "Remove " + account.PhoneNumber) }; _eventService.Insert(_event); if (accountAppliance.PhoneType == Configuration.Android) { var pushGcmotification = new AndroidGcmPushNotification(_appSettings); pushGcmotification.InitPushNotification(accountAppliance.DeviceToken, _event.Message); } else { var applePush = new ApplePushNotificationService(_appSettings); applePush.PushMessage(_event.Message, accountAppliance.DeviceToken, 0, null).Wait(); } var notification = new Notification() { AccountId = accountAppliance.AccountId, ApplianceId = accountAppliance.ApplianceId, EventId = _event.Id, Timestamp = DateTime.UtcNow }; _notificationService.Insert(notification); } _accountApplianceService.Update(accountAppliance); var response = new ResponseData <AccountDTO>(); response.Message = ResponseMessage.Success; response.Status = ResponseStatus.Success.ToString(); return(response); } catch (Exception ex) { var response = new ResponseData <AccountDTO>(); response.Message = ex.Message; response.Status = ResponseStatus.Error.ToString(); return(response); } }
public ResponseData <StripePlan> Purchase([FromBody] PurchaseInformation info) { try { var response = new ResponseData <StripePlan>(); var account = _accountService.GetAccountById(info.CurrenUserId); if (string.IsNullOrEmpty(account.CustomerIdStripe)) { var stripeCustomer = _stripeService.CreateUser(info, account.Email); account.CustomerIdStripe = stripeCustomer.Id; _accountService.Update(account); var accountAppliance = _accountApplianceService.GetAccountApplianceByAccountIdAndApplianceId(info.CurrenUserId, info.CurrenApplianceId); accountAppliance.SubscriptionId = stripeCustomer.Subscriptions.Data.FirstOrDefault().Id; _accountApplianceService.Update(accountAppliance); } else { var accountAppliance = _accountApplianceService.GetAccountApplianceByAccountIdAndApplianceId(info.CurrenUserId, info.CurrenApplianceId); if (!string.IsNullOrEmpty(accountAppliance.SubscriptionId)) { var subscriptionService = _stripeService.RetrieveSubscription(accountAppliance.SubscriptionId); if (subscriptionService != null && subscriptionService.Status == StripeSubscriptionStatuses.Active || subscriptionService.Status == StripeSubscriptionStatuses.Trialing) { var subscription = _stripeService.UpdateSubscription(info, account.CustomerIdStripe, accountAppliance.SubscriptionId); } else { var subscription = _stripeService.CreateSubscription(info, account.CustomerIdStripe); accountAppliance.SubscriptionId = subscription.Id; _accountApplianceService.Update(accountAppliance); } } else { var subscription = _stripeService.CreateSubscription(info, account.CustomerIdStripe); accountAppliance.SubscriptionId = subscription.Id; _accountApplianceService.Update(accountAppliance); } } var plan = _stripeService.GetPlansByPlanId(info.PlanId); if (!string.IsNullOrEmpty(info.Coupon)) { var coupOn = _stripeService.RetrieveCoupon(info.Coupon); if (coupOn.PercentOff != null && coupOn.PercentOff.HasValue) { plan.Amount = plan.Amount - (plan.Amount * coupOn.PercentOff.Value / 100); } else { plan.Amount = plan.Amount - coupOn.AmountOff.Value; } } response.Data = plan; response.Message = ResponseMessage.Success; response.Status = ResponseStatus.Success.ToString(); return(response); } catch (Exception ex) { var response = new ResponseData <StripePlan>(); response.Message = ex.Message; response.Status = ResponseStatus.Error.ToString(); return(response); } }