public async Task <ActionResult <string> > Post()
        {
            try
            {
                this.SetHeaders();
                using (StreamReader reader = new StreamReader(Request.Body, System.Text.Encoding.UTF8))
                {
                    ModelUtilities.GruntEncryptedMessage message = null;
                    try
                    {
                        string body             = reader.ReadToEnd();
                        string ExtractedMessage = body.ParseExact(_context.HttpProfile.First().HttpPostRequest).FirstOrDefault();
                        string inverted         = Common.CovenantEncoding.GetString(this._utilities.ProfileInvert(_context.HttpProfile.First(), ExtractedMessage));
                        message = JsonConvert.DeserializeObject <ModelUtilities.GruntEncryptedMessage>(inverted);
                    }
                    catch (Exception)
                    {
                        // Request not formatted correctly. May not be legitimate Grunt request, respond NotFound
                        return(NotFound());
                    }

                    string guid        = this.GetGuid();
                    Grunt  egressGrunt = null;
                    Grunt  targetGrunt = null;
                    try
                    {
                        egressGrunt = guid == null ? null : await _client.ApiGruntsGuidByGuidGetAsync(guid);
                    }
                    catch (HttpOperationException)
                    {
                        egressGrunt = null;
                    }
                    try
                    {
                        targetGrunt = await _client.ApiGruntsGuidByGuidGetAsync(message.GUID);
                    }
                    catch (HttpOperationException)
                    {
                        targetGrunt = null;
                        // Stage0 Guid is OriginalServerGuid + Guid
                        if (message.GUID.Length == 20)
                        {
                            Grunt originalGeneratedGrunt = await _client.ApiGruntsOriginalguidByServerguidGetAsync(message.GUID.Substring(0, 10));

                            return(await this.PostStage0(egressGrunt, originalGeneratedGrunt, message));
                        }
                        return(NotFound());
                    }

                    switch (targetGrunt.Status)
                    {
                    case GruntStatus.Uninitialized:
                        return(await this.PostStage0(egressGrunt, targetGrunt, message));

                    case GruntStatus.Stage0:
                        return(await this.PostStage1(egressGrunt, targetGrunt, message));

                    case GruntStatus.Stage1:
                        return(await this.PostStage2(egressGrunt, targetGrunt, message));

                    case GruntStatus.Stage2:
                        return(await this.RegisterGrunt(egressGrunt, targetGrunt, message));

                    case GruntStatus.Active:
                        return(await this.PostTask(egressGrunt, targetGrunt, message, guid));

                    default:
                        return(NotFound());
                    }
                }
            }
            catch (HttpOperationException)
            {
                return(NotFound());
            }
        }