Пример #1
0
        public IHttpActionResult PutPointPathLine(Guid id, PointPathLine pointPathLine)
        {
            if (!ModelState.IsValid || pointPathLine == null)
            {
                return(BadRequest(ModelState));
            }

            if (id != pointPathLine.Id)
            {
                return(BadRequest());
            }

            try
            {
                unitOfWork.PointPathLines.Update(pointPathLine);
                unitOfWork.Complete();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PointPathLineExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #2
0
        public IHttpActionResult GetPointPathLine(Guid id)
        {
            PointPathLine pointPathLine = unitOfWork.PointPathLines.Get(id);

            if (pointPathLine == null)
            {
                return(NotFound());
            }

            return(Ok(pointPathLine));
        }
Пример #3
0
        public IHttpActionResult PostPointPathLine(PointPathLine pointPathLine)
        {
            if (!ModelState.IsValid || pointPathLine == null)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                Line line = unitOfWork.Lines.Get(pointPathLine.LineId);
                if (line != null && line.PointLinePaths.Count > 0)
                {
                    if (pointPathLine.SequenceNumber <= 0)
                    {
                        pointPathLine.SequenceNumber = 1;
                    }
                    if (line.PointLinePaths.FirstOrDefault(x => x.SequenceNumber == pointPathLine.SequenceNumber) != null)
                    {
                        line.PointLinePaths.Where(x => x.SequenceNumber >= pointPathLine.SequenceNumber).ToList().ForEach(x => ++ x.SequenceNumber);
                    }
                    else
                    {
                        int maxSeqNum = 1;
                        try
                        {
                            maxSeqNum = line.PointLinePaths.Max(x => x.SequenceNumber);
                            maxSeqNum++;
                        }
                        catch { }

                        if (pointPathLine.SequenceNumber > maxSeqNum)
                        {
                            pointPathLine.SequenceNumber = maxSeqNum;
                        }
                    }
                }
                unitOfWork.PointPathLines.Add(pointPathLine);
                unitOfWork.Complete();
            }
            catch (DbUpdateException)
            {
                if (PointPathLineExists(pointPathLine.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = pointPathLine.Id }, pointPathLine));
        }
Пример #4
0
        public IHttpActionResult DeletePointPathLine(Guid id)
        {
            PointPathLine pointPathLine = unitOfWork.PointPathLines.Get(id);

            if (pointPathLine == null)
            {
                return(NotFound());
            }

            Line line = unitOfWork.Lines.Get(pointPathLine.LineId);

            if (line != null)
            {
                line.PointLinePaths.Where(x => x.SequenceNumber > pointPathLine.SequenceNumber).ToList().ForEach(x => -- x.SequenceNumber);
            }

            unitOfWork.PointPathLines.Remove(pointPathLine);
            unitOfWork.Complete();

            return(Ok(pointPathLine));
        }