public HttpResponseMessage Post([FromBody] SeasonPass Data)
        {
            JsonResponse Response = new JsonResponse(true, new SecureContext());

            Response.Create();

            if (Response.IsAuthentic == true)
            {
                IContentService Service = Services.ContentService;

                var Pass = Service.CreateContent(EncDecService.Hash(Data.ID), 1121, "seasonPass");
                Pass.SetValue("passID", EncDecService.Hash(Data.ID));
                Pass.SetValue("holderName", EncDecService.Encrypt(Data.Holder));
                Pass.SetValue("validFrom", Convert.ToDateTime(Data.ValidFrom));
                Pass.SetValue("validTo", Convert.ToDateTime(Data.ValidTo));
                Pass.SetValue("acquiredOn", Convert.ToDateTime(Data.AcquiredOn));

                string ResponseMessage;

                if (Service.SaveAndPublishWithStatus(Pass))
                {
                    ResponseMessage = "The content has been successfully saved.";
                }
                else
                {
                    ResponseMessage = "An error occured while saving the season pass.";
                }

                Response.Set(new StringContent(ResponseMessage, ApiContext.GetEncoding(), "text/plain"));
            }

            return(Response.Get());
        }
Beispiel #2
0
        public void Get(string _Input = null)
        {
            // Fetch

            if (_Input == null)
            {
                // Loog for stored pass
                ResourceResponse Response = CacheResource.Get();
                if (Response.IsValid)
                {
                    SeasonPassModel Pass = JsonConvert.DeserializeObject <SeasonPassModel>(Response.Data);
                    if (IsPassValid(Pass.ValidTo))
                    {
                        Data = Pass;
                    }
                    else
                    {
                        Data = null;
                        IsPassInvalidEvent?.Invoke(this, EventArgs.Empty);
                    }
                }
            }
            else
            {
                string InputEncrypted = EncDecService.Hash(_Input);

                if (ApiResource.Headers.ContainsKey("PassID"))
                {
                    ApiResource.Headers["PassID"] = InputEncrypted;
                }
                else
                {
                    ApiResource.Headers.Add("PassID", InputEncrypted);
                }

                ResourceResponse Response = ApiResource.Get();

                if (Response.IsValid)
                {
                    List <SeasonPassModel> Temp = JsonConvert.DeserializeObject <List <SeasonPassModel> >(Response.Data);

                    if (Temp.Count > 0)
                    {
                        SeasonPassModel Pass = Temp[0];
                        if (IsPassValid(Pass.ValidTo))
                        {
                            CacheResource.AddOrUpdate(JsonConvert.SerializeObject(Pass));
                            Data = Pass;
                        }
                        else
                        {
                            IsPassInvalidEvent?.Invoke(this, EventArgs.Empty);
                            Data = null;
                        }
                    }
                    else
                    {
                        IsPassInvalidEvent?.Invoke(this, EventArgs.Empty);
                        Data = null;
                    }
                }
            }

            // Decrypt

            if (Data != null)
            {
                Data.Holder = EncDecService.Decrypt(Data.Holder);
            }
        }