public void AddLiveRequest(LiveRequest musicrequestFromApp)
 {
     if (musicrequestFromApp != null)
     {
         liveRequestDAO.Add(musicrequestFromApp);
     }
     else
     {
         throw new APIException(StatusCodes.Status422UnprocessableEntity);
     }
 }
Exemple #2
0
        static void Main(string[] args)
        {
            string live_request_headers_text = System.IO.File.ReadAllText(@".\Resources\live_request_headers.txt");
            object live_request_headers      = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(live_request_headers_text);
            string live_request_body_text    = System.IO.File.ReadAllText(@".\Resources\live_request_body.txt");
            object live_request_body         = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(live_request_body_text);

            string live_response_headers_text = System.IO.File.ReadAllText(@".\Resources\live_response_headers.txt");
            object live_response_headers      = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(live_response_headers_text);
            string live_response_body_text    = System.IO.File.ReadAllText(@".\Resources\live_response_body.txt");
            object live_response_body         = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(live_response_body_text);

            LiveRequest liveRequest = new LiveRequest(
                "PUT",
                "/subscriptions/4d368445-cbb1-42a7-97a6-6850ab99f48e/resourceGroups/pslibtest9279/providers/Microsoft.Compute/virtualMachines/vm1827?api-version=2017-12-01",
                live_request_body,
                live_request_headers
                );

            LiveResponse liveResponse = new LiveResponse(
                "403",
                live_response_headers,
                live_response_body
                );

            LiveValidationParameter liveValidationParameter = new LiveValidationParameter(
                liveRequest,
                liveResponse
                );

            var apiInstance = new LiveValidationApi();

            try
            {
                LiveValidationResponse liveValidationResponse = apiInstance.ToolsLiveValidationValidate(liveValidationParameter);
                Console.WriteLine(liveValidationResponse);
            }
            catch (Exception e)
            {
                Debug.Print("Exception when calling LiveValidationApi.ToolsLiveValidationProdValidate: " + e.Message);
            }
        }
        public void AddMusicrequest(Musicrequest musicrequestFromApp)
        {
            if (musicrequestFromApp != null)
            {
                List <Musicrequest> musicrequests = GetAllMusicRequests();
                bool isRequestedBefore            = false;
                //Går igennem blacklisten
                for (int j = 0; j < ControllerRegistry.GetBlacklistController().GetBlacklist().Count; j++)
                {
                    //Hvis sangen findes i blacklist
                    if (musicrequestFromApp.Track.Id.Equals(ControllerRegistry.GetBlacklistController().GetBlacklist()[j].Track.Id))
                    {
                        throw new APIException(StatusCodes.Status403Forbidden, "The track is blacklisted by the admin");
                    }
                }

                // Går igennem alle musicrequests
                for (int i = 0; i < musicrequests.Count; i++)
                {
                    // Hvis sangen allerede er under musicrequests
                    if (musicrequestFromApp.Track.Id.Equals(musicrequests[i].Track.Id))
                    {
                        isRequestedBefore = true;
                        //Går alle Upvotes på den enkle allerede eksiterende musicrequest igennem
                        for (int j = 0; j < musicrequests[i].Upvotes.Count; j++)
                        {
                            //Hvis brugeren allerede har upvoted sangen
                            if (musicrequests[i].Upvotes[j].Equals(musicrequestFromApp.UserId))
                            {
                                throw new APIException(StatusCodes.Status302Found);
                            }
                        }

                        //Går alle Downvotes på den enkle allerede eksiterende musicrequest igennem
                        for (int k = 0; k < musicrequests[i].Downvotes.Count; k++)
                        {
                            //Hvis brugeren allerede har downvoted sangen
                            if (musicrequests[i].Downvotes[k].Equals(musicrequestFromApp.UserId))
                            {
                                //Brugerens downvote bliver fjernet fra musicrequesten
                                RemoveDownvoteMusicrequest(musicrequests[i].Id, musicrequestFromApp.UserId);

                                //Brugeren upvoter musicrequesten
                                UpvoteMusicrequest(musicrequests[i].Id, musicrequestFromApp.UserId);
                                LiveRequest liverequest = new LiveRequest(musicrequestFromApp.Track, musicrequestFromApp.UserId, musicrequestFromApp.Downvotes, musicrequestFromApp.Upvotes);
                                AddLiveRequest(liverequest);
                                UpvoteLiveRequest(liverequest.Id, liverequest.UserId);
                                throw new APIException(StatusCodes.Status202Accepted);
                            }
                        }

                        //Brugeren upvoter musicrequesten
                        UpvoteMusicrequest(musicrequests[i].Id, musicrequestFromApp.UserId);
                        LiveRequest liverequest2 = new LiveRequest(musicrequestFromApp.Track, musicrequestFromApp.UserId, musicrequestFromApp.Downvotes, musicrequestFromApp.Upvotes);
                        AddLiveRequest(liverequest2);
                        UpvoteLiveRequest(liverequest2.Id, liverequest2.UserId);
                        throw new APIException(StatusCodes.Status201Created);
                    }
                }

                if (!isRequestedBefore)
                {
                    //Opreter en ny musicrequest, da den ikke allerede eksitere
                    Musicrequest musicrequest = new Musicrequest(musicrequestFromApp.Track, musicrequestFromApp.UserId, musicrequestFromApp.Downvotes, musicrequestFromApp.Upvotes);
                    LiveRequest  liverequest1 = new LiveRequest(musicrequestFromApp.Track, musicrequestFromApp.UserId, musicrequestFromApp.Downvotes, musicrequestFromApp.Upvotes);
                    musicrequestDAO.Add(musicrequest);
                    UpvoteMusicrequest(musicrequest.Id, musicrequest.UserId);
                    AddLiveRequest(liverequest1);
                    UpvoteLiveRequest(liverequest1.Id, liverequest1.UserId);

                    //Bug fix
                    if (musicrequest.Upvotes.Count.Equals(2))
                    {
                        musicrequest.Upvotes.RemoveAt(1);
                    }
                    if (liverequest1.Upvotes.Count.Equals(2))
                    {
                        liverequest1.Upvotes.RemoveAt(1);
                    }
                }
            }
            else
            {
                throw new APIException(StatusCodes.Status422UnprocessableEntity);
            }
        }