Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }