static KeyValuePair <string, DateTime>[] RequestRecieved(HttpRequest request, TcpClient client) { List <KeyValuePair <string, DateTime> > timings = new List <KeyValuePair <string, DateTime> >(); OrganizationRequest requestStruct = new OrganizationRequest(); requestStruct.requestURI = (request.RequestURI = request.RequestURI.TrimStart('/')); RequestType a; requestStruct.requestType = (a = GetRequestType(request.RequestURI)); if (a == RequestType.CDir) { requestStruct.centralDirectory = true; } string[] splturi = request.RequestURI.Split('&'); timings.Add(new KeyValuePair <string, DateTime>("Request Translation", DateTime.Now)); switch (a) { case RequestType.Dir: if (splturi.Length > 1) { if ((requestStruct.selectedDir = CentralDirectory.FindDir(splturi[1])) == null) { SendNotFound(client, timings, true); return(timings.ToArray()); } } else { SendNotFound(client, timings, true); return(timings.ToArray()); } break; case RequestType.Index: break; case RequestType.Content: if (splturi.Length > 1) { if ((requestStruct.selectedThumbnail = CentralDirectory.FindThumbnail(splturi[1])) == null) { SendNotFound(client, timings, false); return(timings.ToArray()); } } else { SendNotFound(client, timings, false); return(timings.ToArray()); } break; case RequestType.SoftFile: if (int.TryParse(splturi[splturi.Length - 1], out int i)) { requestStruct.selectedFile = CentralDirectory.FirstOrDefault(i); if (requestStruct.selectedFile == null) { SendNotFound(client, timings, true); return(timings.ToArray()); } } else { SendNotFound(client, timings, true); return(timings.ToArray()); } break; } HandleOrganizationRequest(client, requestStruct, timings); timings.Add(new KeyValuePair <string, DateTime>("Handle Request", DateTime.Now)); return(timings.ToArray()); }