Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }