public Response CreateMarker(CreateMarkerRequest request) { try { var guid = Guid.NewGuid(); var ds = _dal.CreateMarker(request.DocID, guid.ToString(), request.MarkerType, request.CenterX, request.CenterY, request.RadiusX, request.RadiusY, request.ForeColor, request.BackColor, request.UserID); var tbl = ds.Tables[0]; CreateMarkerResponse retval = new CreateMarkerResponse(); if (tbl.Rows.Count >= 1) { if (request.DocID == (string)tbl.Rows[0][0] && request.MarkerType == (string)tbl.Rows[0][2] && request.CenterX == (Decimal)tbl.Rows[0][3] && request.CenterY == (Decimal)tbl.Rows[0][4] && request.RadiusX == (Decimal)tbl.Rows[0][5] && request.RadiusY == (Decimal)tbl.Rows[0][6] && request.ForeColor == (string)tbl.Rows[0][7] && request.BackColor == (string)tbl.Rows[0][8] && request.UserID == (string)tbl.Rows[0][9]) { _messanger.Send(request.UserID, request.DocID, "newMarker"); retval = new CreateMarkerResponseOK((string)tbl.Rows[0][0], (string)tbl.Rows[0][1], (string)tbl.Rows[0][2], (Decimal)tbl.Rows[0][3], (Decimal)tbl.Rows[0][4], (Decimal)tbl.Rows[0][5], (Decimal)tbl.Rows[0][6], (string)tbl.Rows[0][7], (string)tbl.Rows[0][8], (string)tbl.Rows[0][9]); } } return(retval); } catch (Exception ex) { return(new AppResponseError(ex.Message)); } }
public async Task <Response> CreateMarker(CreateMarkerRequest request) { Response retval = new CreateMarkerResponseInvalidDocID(request); if (!_dal.IsDocumentExists(_conn, request.DocID)) { retval = new CreateMarkerResponseInvalidDocID(request); } else if (!_dal.IsUserExists(_conn, request.UserID)) { retval = new CreateMarkerResponseInvalidUserID(request); } else if (!ValidateMarkerType(request.MarkerType)) { retval = new CreateMarkerResponseInvalidMarkerType(request); } else { var id = Guid.NewGuid().ToString(); Marker marker = new Marker() { BackColor = request.BackColor, DocID = request.DocID, ForeColor = request.ForeColor, MarkerID = id , MarkerLocation = request.MarkerLocation, MarkerType = request.MarkerType, UserID = request.UserID }; try { _dal.CreateMarker(_conn, marker); retval = new CreateMarkerResponseOK(request); await _webSocket.SendNewMarker(marker); } catch (Exception ex) { retval = new AppResponseError("Error in create marker"); } } return(retval); }
public async Task <Response> CreateMarker(CreateMarkerRequest request) { Response response = new CreateMarkerResponseInvalidMarkerData(request); if (_dal.isUserExists(request.UserID) && _dal.isDocExists(request.DocID) && isValidMarkerType(request.MarkerType)) { try { //create marker var markerID = Guid.NewGuid().ToString(); DataSet ds = _dal.CreateMarker(request.DocID, markerID, request.UserID, request.MarkerType, request.StrokeColor, request.BackgroundColor, request.X, request.Y, request.XRadius, request.YRadius); response = new CreateMarkerResponseOK(request); //update other users List <string> usersIDs = new List <string>(); DataSet ds2 = _dal.GetSharedUsers(request.DocID); foreach (DataRow row in ds2.Tables[0].Rows) { usersIDs.Add((string)row["USER_ID"]); } DataSet ds3 = _dal.GetDocument(request.DocID); DataRow docData = ds3.Tables[0].Rows[0]; usersIDs.Add((string)docData["USER_ID"]); foreach (string userID in usersIDs) { await _socket.Send(userID, "newMarkerUpdate"); } } catch (Exception ex) { response = new AppResponseError(ex.Message); } } return(response); }