public IHttpActionResult PostNewShare(FormDataCollection data) { if (!Session.Authorized) { return(Unauthorized()); } // Controllo se l'utente non ha già una condivisione in corso, nel caso la restituisco var share = _shareRepo.GetUserActiveShare(Session.User.Id); if (share != null && share.Host.Id == Session.User.Id) { return(Ok(share)); } // Altrimenti ne creo una nuova var valueMap = FormDataConverter.Convert(data); var lat = valueMap.Get("startLat"); var lng = valueMap.Get("startLng"); if (lat.IsNullOrWhiteSpace()) { return(BadRequest("Latitudine iniziale mancante")); } if (lng.IsNullOrWhiteSpace()) { return(BadRequest("Longitudine iniziale mancante")); } double startLat; double startLng; try { startLat = double.Parse(lat); } catch (Exception e) { return(BadRequest("Formato latitudine non corretto (" + e + ")")); } try { startLng = double.Parse(lng); } catch (Exception e) { return(BadRequest("Formato longitudine non corretto")); } var shareId = _shareRepo.CreateShare(Session.User.Id, startLat, startLng); share = _shareRepo.GetUserShare(Session.User.Id, shareId); return(Ok(share)); }