コード例 #1
0
        public bool AddOrUpdateRestaurant(RestaurantDTO dto)
        {
            try
            {
                // check authenticate
                if (dto.Context == null)
                {
                    base.AddError("Authenticate failed !");
                    return(false);
                }
                var m_restaurantRepository        = UnitOfWork.Repository <DB_TB_RESTAURANT>();
                var m_accountRestaurantRepository = UnitOfWork.Repository <DB_TB_ACCOUNT_RESTAURANT>();
                if (dto.Id > 0)
                {
                    //update
                    var m_restaurant = m_restaurantRepository.Get(a => a.Id == dto.Id);
                    m_restaurant.Name       = dto.Name;
                    m_restaurant.MenuUrl    = dto.MenuUrl;
                    m_restaurant.Address    = dto.MenuUrl;
                    m_restaurant.IsDelivery = dto.IsDelivery;
                    m_restaurantRepository.Update(m_restaurant);
                }
                else
                {
                    var m_restaurant = new DB_TB_RESTAURANT()
                    {
                        CreatedDate = DateTime.Now,
                        OwnerId     = dto.Context.Id,
                        Address     = dto.Address,
                        Latitude    = (double)dto.Latitude,
                        Longitude   = (double)dto.Longitude,
                        IsDelivery  = dto.IsDelivery,
                        MenuUrl     = dto.MenuUrl,
                        Name        = dto.Name,
                        Phone       = dto.Phone
                    };
                    m_restaurantRepository.Add(m_restaurant);
                    m_accountRestaurantRepository.Add(new DB_TB_ACCOUNT_RESTAURANT()
                    {
                        AccountId        = m_restaurant.OwnerId,
                        DB_TB_RESTAURANT = m_restaurant,
                        CreatedDate      = DateTime.Now
                    });
                }

                UnitOfWork.Commit();
                return(!this.HasError);
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #2
0
ファイル: OrderBusiness.cs プロジェクト: haichay88/lunchbox
        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);
        }