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); } }
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); }