Ejemplo n.º 1
0
        public List <AccountDTO> AddOrUpdateAccount(AccountDTO dto)
        {
            // check authenticate
            if (dto.Context == null)
            {
                base.AddError("Authenticate failed !");
                return(null);
            }

            var m_accountRepository = UnitOfWork.Repository <DB_TB_ACCOUNTS>();

            if (dto.Id > 0)
            {
                // update
                var m_account = m_accountRepository.Get(a => a.ACC_SYS_ID == dto.Id);
                m_account.ACC_LASTNAME  = dto.LastName;
                m_account.ACC_FIRSTNAME = dto.FirstName;

                m_accountRepository.Update(m_account);
            }
            else
            {
                //add
                var m_account = new DB_TB_ACCOUNTS()
                {
                    ACC_EMAIL      = dto.Email,
                    ACC_FIRSTNAME  = dto.FirstName,
                    ACC_MIDDLENAME = dto.MiddleName,
                    ACC_IS_ACTIVED = false,
                    ACC_LASTNAME   = dto.LastName,
                    ACC_OWNER_ID   = dto.Context.Id,
                    ACC_PASSWORD   = dto.Password,
                };
                //m_account.ACC_TOKEN = Guid.NewGuid().ToString();
                if (IsExistAccount(m_account.ACC_EMAIL))
                {
                    base.AddError("Tai khoan da ton tai");
                    return(null);
                }

                m_account.ACC_OWNER_ID = WorkContext.UserContext.UserId;

                m_accountRepository.Add(m_account);
                var m_friendRepository = UnitOfWork.Repository <DB_TB_FRIENDSHIP>();
                m_friendRepository.Add(new DB_TB_FRIENDSHIP()
                {
                    AccountId   = WorkContext.UserContext.UserId,
                    FriendId    = m_account.ACC_SYS_ID,
                    CreatedDate = DateTime.Now
                });
            }
            UnitOfWork.Commit();
            return(GetUsers());
        }
Ejemplo n.º 2
0
 public IList <FriendDTO> SyncFriends(InviteMoreFriendDTO request)
 {
     if (request.Context == null)
     {
         base.AddError("Authenticate failed !");
         return(null);
     }
     if (request.Friends == null)
     {
         base.AddError("No contact to sync !");
         return(null);
     }
     try
     {
         var m_accountRepository    = UnitOfWork.Repository <DB_TB_ACCOUNTS>();
         var m_friendshipRepository = UnitOfWork.Repository <DB_TB_FRIENDSHIP>();
         var IorderBusiness         = IoC.Get <IOrderBusiness>();
         foreach (var item in request.Friends)
         {
             var checkAccount = m_accountRepository.GetQueryable().Where(a => a.ACC_EMAIL == item.Email).FirstOrDefault();
             if (checkAccount != null)
             {
                 if (!IorderBusiness.CheckExistFriendShip(request.Context.Id, checkAccount.ACC_SYS_ID))
                 {
                     m_friendshipRepository.Add(IorderBusiness.BuildRowFriendShip(request.Context.Id, checkAccount.ACC_SYS_ID));
                     m_friendshipRepository.Add(IorderBusiness.BuildRowFriendShip(checkAccount.ACC_SYS_ID, request.Context.Id));
                 }
             }
             else
             {
                 var rowAccount = new DB_TB_ACCOUNTS()
                 {
                     ACC_EMAIL      = item.Email,
                     ACC_FIRSTNAME  = item.FirstName,
                     ACC_IS_ACTIVED = false
                 };
                 m_accountRepository.Add(rowAccount);
             }
             UnitOfWork.Commit();
         }
         SearchDTO search = new SearchDTO()
         {
             Token = request.Token
         };
         return(GetFriends(search));
     }
     catch (Exception)
     {
         return(null);
     }
 }
Ejemplo n.º 3
0
        public LoginResultDTO SignUp(SignUpDTO request)
        {
            if (string.IsNullOrEmpty(request.Email))
            {
                base.AddError("Please input Email");
                return(null);
            }
            if (string.IsNullOrEmpty(request.Password))
            {
                base.AddError("Please input Password");
                return(null);
            }
            var m_accountRepository = UnitOfWork.Repository <DB_TB_ACCOUNTS>();
            var emailExist          = m_accountRepository.GetQueryable().Where(a => a.ACC_EMAIL == request.Email).FirstOrDefault();

            if (emailExist != null)
            {
                if (emailExist.ACC_IS_ACTIVED)
                {
                    base.AddError("Email existed !");
                    return(null);
                }
                else
                {
                    emailExist.ACC_IS_ACTIVED = true;
                    emailExist.ACC_PASSWORD   = request.Password;
                    m_accountRepository.Update(emailExist);
                }
            }
            else
            {
                var newAccount = new DB_TB_ACCOUNTS()
                {
                    ACC_EMAIL             = request.Email,
                    ACC_PASSWORD          = request.Password,
                    ACC_IS_ACTIVED        = true,
                    ACC_RESGISTRANTION_ID = request.DeviceKey,
                };

                m_accountRepository.Add(newAccount);
            }


            UnitOfWork.Commit();

            return(Relogin(request.Email));
        }
Ejemplo n.º 4
0
        public bool AddInvite(InviteDTO request)
        {
            if (request.Context == null)
            {
                base.AddError("Authenticate failed !");
                return(false);
            }
            if (request.Friends == null)
            {
                base.AddError("Data invaild!");
                return(false);
            }

            var m_orderRepository        = UnitOfWork.Repository <DB_TB_ORDERS>();
            var m_friendRepository       = UnitOfWork.Repository <DB_TB_ACCOUNTS>();
            var m_orderDetailRepository  = UnitOfWork.Repository <DB_TB_ORDER_DETAIL>();
            var m_orderAccountRepository = UnitOfWork.Repository <DB_TB_INVITE_ACCOUNT>();

            var m_invite = new DB_TB_ORDERS()
            {
                Title        = request.Title,
                LunchDate    = request.LunchDate,
                OwnerId      = request.Context.Id,
                RestaurantId = request.PlaceId,
                CreatedDate  = DateTime.Now,
                Description  = request.Description
            };

            if (!string.IsNullOrEmpty(request.Place.Name) && string.IsNullOrEmpty(request.Place.Address))
            {
                var row = new DB_TB_RESTAURANT()
                {
                    Address     = request.Place.Address,
                    Name        = request.Place.Name,
                    Latitude    = request.Place.Latitude,
                    Longitude   = request.Place.Longitude,
                    MenuUrl     = request.Place.MenuUrl,
                    OwnerId     = request.Context.Id,
                    CreatedDate = DateTime.Now
                };
                UnitOfWork.Repository <DB_TB_RESTAURANT>().Add(row);
                m_invite.DB_TB_RESTAURANT = row;
            }
            // add current account to order detail
            var m_currentuserDetail = new DB_TB_ORDER_DETAIL()
            {
                DB_TB_ORDERS = m_invite,
                AccountId    = request.Context.Id,
                CreatedDate  = DateTime.Now
            };

            m_orderDetailRepository.Add(m_currentuserDetail);


            // add friend to order detail
            foreach (var item in request.Friends)
            {
                var rowAccountInvite = new DB_TB_INVITE_ACCOUNT()
                {
                    IsConfirmed  = false,
                    IsSent       = false,
                    DB_TB_ORDERS = m_invite
                };

                var m_inviteDetail = new DB_TB_ORDER_DETAIL()
                {
                    DB_TB_ORDERS = m_invite,
                };
                // FRIEND SHIP

                if (item.Id <= 0)
                {
                    // add friend ship

                    var m_account = new DB_TB_ACCOUNTS()
                    {
                        ACC_EMAIL      = item.Email,
                        ACC_IS_ACTIVED = false,
                        ACC_FIRSTNAME  = item.FirstName
                    };
                    // check exist by email
                    var exist = m_friendRepository.GetQueryable().Where(a => a.ACC_EMAIL == item.Email).FirstOrDefault();
                    if (exist == null)
                    {
                        m_friendRepository.Add(m_account);
                        m_inviteDetail.DB_TB_ACCOUNTS   = m_account;
                        rowAccountInvite.DB_TB_ACCOUNTS = m_account;
                    }
                    else
                    {
                        m_inviteDetail.AccountId   = exist.ACC_SYS_ID;
                        rowAccountInvite.AccountId = exist.ACC_SYS_ID;
                    }
                }
                else
                {
                    m_inviteDetail.AccountId   = item.Id;
                    rowAccountInvite.AccountId = item.Id;
                }
                m_inviteDetail.CreatedDate = DateTime.Now;
                m_orderDetailRepository.Add(m_inviteDetail);
                m_orderAccountRepository.Add(rowAccountInvite);
            }
            UnitOfWork.Commit();


            // update friend ship
            AddFriendShip(m_invite.Id);

            // update restaurant per account
            addRestaurantAccount(m_invite.Id);

            // send email
            SendMessageInvite(m_invite.Id);


            return(!this.HasError);
        }
Ejemplo n.º 5
0
        public List <AccountDTO> AddOrUpdateFriend(AccountDTO dto)
        {
            // check authenticate
            if (dto.Context == null)
            {
                base.AddError("Authenticate failed !");
                return(null);
            }

            var m_accountRepository = UnitOfWork.Repository <DB_TB_ACCOUNTS>();
            var m_friendRepository  = UnitOfWork.Repository <DB_TB_FRIENDSHIP>();

            if (dto.Id > 0)
            {
                // update
                var m_account = m_accountRepository.Get(a => a.ACC_SYS_ID == dto.Id);
                m_account.ACC_LASTNAME  = dto.LastName;
                m_account.ACC_FIRSTNAME = dto.FirstName;

                m_accountRepository.Update(m_account);
            }
            else
            {
                //add
                var m_account = new DB_TB_ACCOUNTS()
                {
                    ACC_EMAIL      = dto.Email,
                    ACC_FIRSTNAME  = dto.FirstName,
                    ACC_MIDDLENAME = dto.MiddleName,
                    ACC_IS_ACTIVED = false,
                    ACC_LASTNAME   = dto.LastName,
                    ACC_OWNER_ID   = dto.Context.Id,
                };
                // check email alright exist?
                var accountExist = m_accountRepository.GetQueryable().Where(a => a.ACC_EMAIL == m_account.ACC_EMAIL).FirstOrDefault();

                if (accountExist != null)
                {
                    // check relationship if account existed
                    var friendRelation = m_friendRepository.GetQueryable().Where(a => a.AccountId == dto.Context.Id && a.FriendId == accountExist.ACC_SYS_ID).FirstOrDefault();
                    if (friendRelation == null)
                    {
                        m_friendRepository.Add(new DB_TB_FRIENDSHIP()
                        {
                            AccountId   = dto.Context.Id,
                            FriendId    = accountExist.ACC_SYS_ID,
                            CreatedDate = DateTime.Now
                        });
                    }
                }
                else
                {
                    m_account.ACC_OWNER_ID = dto.Context.Id;
                    m_accountRepository.Add(m_account);
                    m_friendRepository.Add(new DB_TB_FRIENDSHIP()
                    {
                        AccountId   = dto.Context.Id,
                        FriendId    = m_account.ACC_SYS_ID,
                        CreatedDate = DateTime.Now
                    });
                }
            }
            UnitOfWork.Commit();
            return(GetUsers());
        }