Ejemplo n.º 1
0
        public async Task <Circle> GetById(Guid circleId)
        {
            var dbUser = DbUser;

            using (CircleRepository _circleRepostiRepository = new CircleRepository(Context, dbUser, null))
            {
                var circle = _circleRepostiRepository.GetById(circleId);
                if (circle != null)
                {
                    return(new Circle {
                        Id = circle.Id, Name = circle.Name, IsCreatedByUser = circle.CreatorId == dbUser
                    });
                }
                return(null);
            }
        }
Ejemplo n.º 2
0
        public UnitOfWork(AreasMapCoreDbContext context)
        {
            _context = context ?? throw new ArgumentNullException(nameof(context));

            EntityFrameworkManager.ContextFactory = context =>
            {
                return(_context);
            };

            AreaRepository      = new AreaRepository(_context);
            ShapeRepository     = new ShapeRepository(_context);
            ShapeTypeRepository = new ShapeTypeRepository(_context);

            CircleRepository           = new CircleRepository(_context);
            CircleCoordinateRepository = new CircleCoordinateRepository(_context);

            RectangleRepository       = new RectangleRepository(_context);
            RectangleBoundsRepository = new RectangleBoundsRepository(_context);

            PolygonRepository           = new PolygonRepository(_context);
            PolygonCoordinateRepository = new PolygonCoordinateRepository(_context);
        }
Ejemplo n.º 3
0
        public async Task <BoolResult> Delete(Circle circle)
        {
            var dbUser = DbUser;

            using (var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                using (CircleRepository _circleRepostiRepository = new CircleRepository(Context, dbUser, null))
                {
                    try
                    {
                        var circleItem = _circleRepostiRepository.GetById(circle.Id);
                        if (circleItem == null)
                        {
                            return(new BoolResult()
                            {
                                IsOk = false,
                                ErrorMessage = "No circle info"
                            });
                        }
                        _circleRepostiRepository.Delete(circleItem);
                        Context.SaveChanges();
                        transactionScope.Complete();
                        return(new BoolResult()
                        {
                            IsOk = true
                        });
                    }
                    catch (Exception e)
                    {
                        LogHelper.WriteError(e);
                        return(new BoolResult()
                        {
                            IsOk = false,
                            ErrorMessage = e.ToString()
                        });
                    }
                }
        }
Ejemplo n.º 4
0
 public CircleController(CircleRepository circleRepository, UserRepository userRepository, WallRepository wallRepository)
 {
     _circleRepository = circleRepository;
     _userRepository   = userRepository;
     _wallRepository   = wallRepository;
 }
Ejemplo n.º 5
0
        public async Task <IdResult> Submit(Circle circle)
        {
            if (circle == null)
            {
                return(new IdResult()
                {
                    IsOk = false,
                    ErrorMessage = "No circle info"
                });
            }
            if (circle.SelectedContacts == null)
            {
                return(new IdResult()
                {
                    IsOk = false,
                    ErrorMessage = "Circle can not be empty"
                });
            }

            Common.Model.Circle circleItem = null;
            var dbUser = DbUser;

            using (var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                using (CircleRepository _circleRepostiRepository = new CircleRepository(Context, dbUser, null))
                {
                    {
                        try
                        {
                            if (circle.Id == Guid.Empty)
                            {
                                circleItem = new Common.Model.Circle()
                                {
                                    Name    = circle.Name,
                                    IsGroup = true,
                                };
                                _circleRepostiRepository.Create(circleItem);
                                Context.SaveChanges();
                                _circleRepostiRepository.AddMainPersonToCircleUser(circleItem.Id, dbUser);
                            }
                            else
                            {
                                circleItem      = _circleRepostiRepository.GetById(circle.Id);
                                circleItem.Name = circle.Name;
                                _circleRepostiRepository.Update(circleItem);
                            }

                            var selectedContacts = circle.SelectedContacts.Select(p => p.Id).ToList();
                            _circleRepostiRepository.SynchCircleUsers(circleItem.Id, selectedContacts, circle.Name, dbUser);
                            Context.SaveChanges();
                            transactionScope.Complete();
                            return(new IdResult()
                            {
                                IsOk = true,
                                Id = circleItem.Id
                            });
                        }
                        catch (Exception e)
                        {
                            LogHelper.WriteError(e);
                            return(new IdResult()
                            {
                                IsOk = false,
                                ErrorMessage = e.ToString()
                            });
                        }
                    }
                }
        }