public HttpResponseMessage GetCapability([FromBody] CapabilityRequest capabilityRequest) { //capabilityRequest.Uid = (capabilityRequest.Uid != null) ? capabilityRequest.Uid.Trim() : capabilityRequest.Uid; #region log user request and response /*********************************************** * To log user request and response ***********************************************/ if (_logRequestResponse) { LogManager.CurrentInstance.InfoLogger.LogInfo( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, System.Reflection.MethodBase.GetCurrentMethod().Name + "===>" + "Request ===> " + JsonConvert.SerializeObject(capabilityRequest)); } #endregion //#region user authentication //IEnumerable<string> headerValues; //string keyFromClient = ""; //if (Request.Headers.TryGetValues("key", out headerValues)) //{ // keyFromClient = headerValues.First(); //} //if (!NeeoUtility.AuthenticateUserRequest(capabilityRequest.UID, keyFromClient)) //else //{ // return Request.CreateResponse(HttpStatusCode.Unauthorized); //} if (ModelState.IsValid) { ulong temp = 0; if (ulong.TryParse(capabilityRequest.Uid, out temp) && capabilityRequest.Cap > 0 && capabilityRequest.Cap < 128) { NeeoUser neeoUser = new NeeoUser(capabilityRequest.Uid.Trim()); try { Dictionary <string, string> contactsAppVersionDictionary = neeoUser.GetContactsAppVersion(capabilityRequest.Contacts); Capability capability = null; Dictionary <string, Capability> contactsAppCapabilities = new Dictionary <string, Capability>(); foreach (var item in contactsAppVersionDictionary) { capability = new Capability(VersionCapability.GetVersionCapability(item.Value.ToUpper())); capability.SetRequestedCapabilities(capabilityRequest.Cap); contactsAppCapabilities.Add(item.Key, capability); capability = null; } CapabilityResponse capabilityResponse = new CapabilityResponse() { UID = capabilityRequest.Uid, ContactsAppCapabilities = contactsAppCapabilities }; return(Request.CreateResponse(HttpStatusCode.OK, capabilityResponse)); } catch (ApplicationException appEx) { return(Request.CreateErrorResponse((HttpStatusCode)Convert.ToInt16(appEx.Message), NeeoDictionaries.HttpStatusCodeDescriptionMapper[Convert.ToInt16(appEx.Message)])); } catch (Exception appEx) { return(Request.CreateErrorResponse((HttpStatusCode)Convert.ToInt16(appEx.Message), NeeoDictionaries.HttpStatusCodeDescriptionMapper[Convert.ToInt16(appEx.Message)])); } } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, NeeoDictionaries.HttpStatusCodeDescriptionMapper[(int)HttpStatusCode.BadRequest])); } } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, NeeoDictionaries.HttpStatusCodeDescriptionMapper[(int)HttpStatusCode.BadRequest])); } }