Exemplo n.º 1
0
 public ActionResult AddNewVisitor(VisitorModel model, string operation)
 {
     model.lstblock    = HttpContext.Application["lstblock"] as List <string>;
     model.lstrelation = HttpContext.Application["lstrelations"] as List <string>;
     if (operation == "In")
     {
         DateTime intime = Request.RequestContext.HttpContext.Timestamp;
         model.In_Time = intime.ToString();
         omodelmanager.VisitorIn(model);
         ModelState.Clear();
         return(View(model));
     }
     else if (operation == "Search")
     {
         ovisitormodel             = omodelmanager.GetVisitor(model);
         ovisitormodel.lstblock    = HttpContext.Application["lstblock"] as List <string>;
         ovisitormodel.lstrelation = HttpContext.Application["lstrelations"] as List <string>;
         ModelState.Clear();
         return(View(ovisitormodel));
     }
     else if (operation == "Out")
     {
         DateTime outtime = Request.RequestContext.HttpContext.Timestamp;
         model.Out_Time = outtime.ToString();
         omodelmanager.VisitorOut(model);
         ModelState.Clear();
         return(View(model));
     }
     return(View());
 }
Exemplo n.º 2
0
        public async Task <IActionResult> Post(VisitorModel visitorModel)
        {
            var visitor       = _mapper.Map <Visitor>(visitorModel);
            var createdTicket = await _visitorService.AddAsync(visitor);

            return(Ok(createdTicket));
        }
Exemplo n.º 3
0
        public JsonResult Visitor_Filter(string startDate, string endDate)
        {
            string jsonString = string.Empty;

            try
            {
                visitor           = new BaseLayer.VisitorBase();
                visitor.StartDate = startDate;
                visitor.EndDate   = endDate;
                List <VisitorModel> VisitorList = new List <VisitorModel>();
                VisitorModel        model       = new VisitorModel();
                actionResult = visitorAction.Visitor_Filter(visitor);
                if (actionResult.IsSuccess && actionResult.dtResult.Rows.Count > 0)
                {
                    for (int i = 0; i < actionResult.dtResult.Rows.Count; i++)
                    {
                        jsonString += "<tr id=" + actionResult.dtResult.Rows[i]["VisitorID"].ToString() + ">";
                        jsonString += "<td>" + actionResult.dtResult.Rows[i]["VisitorDate"]
                                      + "</td><td>" + actionResult.dtResult.Rows[i]["VisitorName"] + "</td><td>" + actionResult.dtResult.Rows[i]["GroupIdentifier"]
                                      + "</td><td>" + actionResult.dtResult.Rows[i]["FromHoursMinutes"] + "</td><td>" + actionResult.dtResult.Rows[i]["ToHoursMinutes"]
                                      + "</td><td><a href='Index?visitorID=" + actionResult.dtResult.Rows[i]["VisitorID"].ToString() + "' class='btn small btn-info btn-sm btn-icon' title='Edit Visitor'><i class='fa fa-pencil'></i></a> | <a href ='javascript:;' onclick='DeleteVisitor("
                                      + actionResult.dtResult.Rows[i]["VisitorID"].ToString() + ",this);' class='btn small btn-danger btn-sm -icon delete-sm' title='Delete Visitor'><i class='fa fa-trash'></i></a></td>";
                        jsonString += "</tr>";
                    }
                }
            }
            catch (Exception)
            {
                jsonString = "-1";
                return(Json(jsonString, JsonRequestBehavior.AllowGet));
            }

            return(Json(jsonString, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 4
0
        public VisitorModel GetVisitorCentres()
        {
            string       NATIONAL_PARK_API_PATH = BASE_URL + "visitorcenters?parkCode=acad,dena,cabr,cave,grca,jotr,yose,zion,yell,glac";
            string       parksData = "";
            VisitorModel visitors  = null;

            //httpClient.BaseAddress = new Uri(NATIONAL_PARK_API_PATH);
            // It can take a few requests to get back a prompt response, if the API has not received
            //  calls in the recent past and the server has put the service on hibernation
            try
            {
                using (var httpClient = new HttpClient {
                    BaseAddress = new Uri(NATIONAL_PARK_API_PATH)
                })
                {
                    httpClient.DefaultRequestHeaders.Accept.Clear();
                    httpClient.DefaultRequestHeaders.Add("X-Api-Key", API_KEY);
                    httpClient.DefaultRequestHeaders.Accept.Add(
                        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                    HttpResponseMessage response = httpClient.GetAsync(NATIONAL_PARK_API_PATH).GetAwaiter().GetResult();
                    parksData = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
                    if (!parksData.Equals(""))
                    {
                        // JsonConvert is part of the NewtonSoft.Json Nuget package
                        visitors = JsonConvert.DeserializeObject <VisitorModel>(parksData);
                    }
                }
            }
            catch (Exception e)
            {
                // This is a useful place to insert a breakpoint and observe the error message
                Console.WriteLine(e.Message);
            }
            return(visitors);
        }
Exemplo n.º 5
0
 public void VisitorIn(VisitorModel model)
 {
     using (SqlConnection cn = new SqlConnection(cns))
     {
         using (SqlCommand cmd = new SqlCommand("visitorin", cn))
         {
             cmd.CommandType = CommandType.StoredProcedure;
             cmd.Parameters.AddWithValue("@cell", model.Visitor_Cellno);
             cmd.Parameters.AddWithValue("@visitor_name", model.VisitorName);
             cmd.Parameters.AddWithValue("@age", model.Age);
             cmd.Parameters.AddWithValue("@gender", model.Gender);
             cmd.Parameters.AddWithValue("@address", model.Address);
             cmd.Parameters.AddWithValue("@relation", model.Relation);
             cmd.Parameters.AddWithValue("@date_time_in", model.In_Time);
             cmd.Parameters.AddWithValue("@member_name", model.MemberName);
             cmd.Parameters.AddWithValue("@block", model.Block);
             cmd.Parameters.AddWithValue("@flat_no", model.Flatno);
             try
             {
                 cn.Open();
                 int count = cmd.ExecuteNonQuery();
             }
             catch (SqlException ex) { throw ex; }
             finally
             {
                 if (cn.State == ConnectionState.Open)
                 {
                     cn.Close();
                 }
             }
         }
     }
 }
Exemplo n.º 6
0
 public void VisitorOut(VisitorModel model)
 {
     using (SqlConnection cn = new SqlConnection(cns))
     {
         using (SqlCommand cmd = new SqlCommand("visitorout", cn))
         {
             cmd.CommandType = CommandType.StoredProcedure;
             cmd.Parameters.AddWithValue("@cell", model.Visitor_Cellno);
             cmd.Parameters.AddWithValue("@date_time_out", model.Out_Time);
             try
             {
                 cn.Open();
                 int count = cmd.ExecuteNonQuery();
             }
             catch (SqlException ex) { throw ex; }
             finally
             {
                 if (cn.State == ConnectionState.Open)
                 {
                     cn.Close();
                 }
             }
         }
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// Добавляет запись о заселение посетителей
        /// </summary>
        /// <param name="idRoom">Id комнаты</param>
        /// <param name="idUser">Id пользователя</param>
        /// <param name="model">Модель для добавления</param>
        /// <returns></returns>
        public async Task <Guid> AddAsync(int idRoom, Guid idUser, VisitorModel model)
        {
            if (model == null)
            {
                throw new NullReferenceException($"Ссылка на модель указывает на null.");
            }

            var resultRoom = await _roomService.FindByIdAsync(idRoom);

            var resultUser = await _userService.FindByIdAsync(idUser);

            if (resultRoom.IsFree)
            {
                //Занимаем комнату
                resultRoom.IsFree = false;
            }
            else
            {
                throw new ArgumentException($"Комната под id:{idRoom} уже занята.");
            }

            var resultVisitor = new Visitor(resultRoom.Id, resultUser.Id, model.Date);
            await _context.Visitors.AddAsync(resultVisitor);

            await _context.SaveChangesAsync();

            return(resultVisitor.Id);
        }
Exemplo n.º 8
0
 public ActionResult Create(VisitorModel visitorModel)
 {
     try
     {
         Visitor visitor = new Visitor
         {
             ID      = visitorModel.ID,
             Comment = visitorModel.Comment,
             vName   = visitorModel.vName
         };
         if (ModelState.IsValid)
         {
             if (visitor.ID > 0)
             {
                 visitorRepository.UpdateVisitor(visitor);
             }
             else
             {
                 visitorRepository.InsertVisitor(visitor);
             }
         }
         else
         {
             return(View(visitorModel));
         }
         return(RedirectToAction("Index"));
     }
     catch (Exception)
     {
         return(View(visitorModel));
     }
 }
 internal static Visitor ToDataModel(this VisitorModel visitorModel)
 {
     return(new Visitor
     {
         Name = visitorModel.Name,
         Address = visitorModel.Address,
     });
 }
Exemplo n.º 10
0
        public async Task <IActionResult> Put(Guid visitorId, VisitorModel visitorModel)
        {
            var visitor = await _visitorService.GetAsync(visitorId);

            _mapper.Map(visitorModel, visitor);
            var updatedPlace = await _visitorService.UpdateAsync(visitorId, visitor);

            return(Ok(updatedPlace));
        }
Exemplo n.º 11
0
        public ActionResult VisitorGrid(int id, string namefilter)
        {
            var m = new VisitorModel(id, namefilter);

            ViewBag.orgname = Session["ActiveOrganization"] + " - Guests";
            UpdateModel(m.Pager);
            DbUtil.LogActivity("Viewing Visitors for {0}".Fmt(Session["ActiveOrganization"]));
            return(View("VisitorGrid", m));
        }
Exemplo n.º 12
0
        public ActionResult <ResponseModel> AddVisitor([FromBody] VisitorModel model)
        {
            var storageVisitor = Mapper.ConvertVisitorDomainModelToStorage(model);

            dbContext.Visitors.Add(storageVisitor);
            dbContext.SaveChanges();
            return(new ResponseModel {
                IsSuccess = true, Message = "Save Successful."
            });
        }
Exemplo n.º 13
0
    void Start()
    {
        movement        = GetComponent <VisitorMovement>();
        model           = GetComponent <VisitorModel>();
        happiness       = 0.5f;   // Start at 50%
        happinessFailed = false;

        ui = GameObject.Instantiate <HappyUI>(uiPrefab);
        ui.Follow(transform);
    }
Exemplo n.º 14
0
        public ActionResult VisitorGrid(int id, string namefilter)
        {
            var qb = DbUtil.Db.QueryBuilderVisitedCurrentOrg();

            InitExportToolbar(id, qb.QueryId);
            var m = new VisitorModel(id, qb.QueryId, namefilter);

            UpdateModel(m.Pager);
            DbUtil.LogActivity("Viewing Visitors for {0}".Fmt(Session["ActiveOrganization"]));
            return(View("VisitorGrid", m));
        }
Exemplo n.º 15
0
 public Task <int> SaveVisitorAsync(VisitorModel item)
 {
     if (item.ID != 0)
     {
         return(Database.UpdateAsync(item));
     }
     else
     {
         return(Database.InsertAsync(item));
     }
 }
Exemplo n.º 16
0
        public IActionResult GetById(int id)
        {
            VisitorModel visitor = _visitorManager.GetVisitorById(id);

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

            return(Ok(visitor));
        }
Exemplo n.º 17
0
        bool ICRUDService.Delete(int id)
        {
            VisitorModel visitor = _context.Visitors.Where(v => v.VisitorModelID == id).FirstOrDefault();

            _context.Visitors.Remove(visitor);
            if (_context.SaveChanges() == 1)
            {
                return(true);
            }
            return(false);
        }
Exemplo n.º 18
0
        public VisitorModel GetVisitor(VisitorModel model)
        {
            VisitorModel visitor = new VisitorModel();

            using (SqlConnection cn = new SqlConnection(cns))
            {
                using (SqlCommand cmd = new SqlCommand("searchvisitor", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@cell", model.Visitor_Cellno);
                    try
                    {
                        cn.Open();
                        using (SqlDataReader dr = cmd.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                visitor.Visitor_Cellno = dr["visitor_cell"].ToString();
                                visitor.VisitorName    = dr["visitor_name"].ToString();
                                visitor.Age            = (int)dr["age"];
                                visitor.Gender         = dr["gender"].ToString();
                                visitor.Address        = dr["address"].ToString();
                                visitor.Relation       = dr["relation"].ToString();
                                visitor.MemberName     = dr["member_name"].ToString();
                                visitor.Block          = dr["block"].ToString();
                                visitor.Flatno         = (int)dr["flat_no"];
                                string in_time  = dr["date_time_in"].ToString();
                                string out_time = dr["date_time_out"].ToString();
                                if (in_time != string.Empty && out_time != string.Empty)
                                {
                                }
                                else if (in_time != string.Empty)
                                {
                                    visitor.In_Time = dr["date_time_in"].ToString();
                                }
                            }
                            dr.Close();
                        }
                    }
                    catch (SqlException ex) { throw ex; }
                    finally
                    {
                        if (cn.State == ConnectionState.Open)
                        {
                            cn.Close();
                        }
                    }
                }
            }
            return(visitor);
        }
Exemplo n.º 19
0
 /// <summary>
 /// Maps a VisitorModel to Visitor.
 /// </summary>
 /// <param name="visitorModel">The visitor model.</param>
 /// <returns>A visitor</returns>
 public static Visitor ToVisitor(this VisitorModel visitorModel)
 {
     return(new Visitor()
     {
         Id = visitorModel.Id,
         CreatedBy = visitorModel.CreatedBy,
         CreatedOn = visitorModel.CreatedOn,
         UpdatedBy = visitorModel.UpdatedBy,
         UpdatedOn = visitorModel.UpdatedOn,
         Mobile = visitorModel.Mobile,
         Email = visitorModel.Email,
         Name = visitorModel.Name
     });
 }
Exemplo n.º 20
0
        public ActionResult Index(int userId)
        {
            //visar profilsidan på användaren med id:t som skickas in
            var model = UnitOfWork.ProfileRepository.GetProfile(userId);

            //Kollar om profilen tillhör den nuvarande användaren
            if (UnitOfWork.ProfileRepository.GetProfileId(User.Identity.GetUserId()) == model.Id)
            {
                return(RedirectToAction("IndexMe"));
            }

            var visitorModel = new VisitorModel()
            {
                ProfileId = model.Id,
                VisitorId = UnitOfWork.ProfileRepository.GetProfileId(User.Identity.GetUserId())
            };

            // Hämtar alla besökare
            var visitorModels = UnitOfWork.VisitorRepository.GetVisitorProfiles(model.Id);

            bool duplicate = false;

            // Kollar om den inloggade användaren finns på besökarlistan
            foreach (var visitor in visitorModels)
            {
                if (visitor.VisitorId == UnitOfWork.ProfileRepository.GetProfileId(User.Identity.GetUserId()))
                {
                    duplicate = true;
                }
            }

            // om besökaren inte redan finns i besökarlistan och listan är mindre än 5
            if ((visitorModels.Count < 5) && (!duplicate))
            {
                UnitOfWork.VisitorRepository.AddVisitor(visitorModel);
            }
            // om besökaren inte redan finns i besökarlistan, men listan är full
            else if (!duplicate)
            {
                // den äldsta besökaren tas bort och den nya läggs till
                UnitOfWork.VisitorRepository.RemoveOldestVisitor();
                UnitOfWork.VisitorRepository.AddVisitor(visitorModel);
            }

            var viewModel = new ProfileIndexViewModel(model);

            UnitOfWork.Save();

            return(View(viewModel));
        }
Exemplo n.º 21
0
        public int CheckLogin(string email, string password)
        {
            string hashedpassword = MD5Hash.GetMD5(password);

            VisitorModel visitor = _context.Visitors
                                   .Where(v => v.Email == email)
                                   .Where(v => v.Password == hashedpassword)
                                   .FirstOrDefault();

            if (visitor != null)
            {
                return(visitor.VisitorModelID);
            }
            return(0);
        }
Exemplo n.º 22
0
        public IActionResult Create([FromBody] CreateVisitorRequest request)
        {
            VisitorModel visitor = _visitorManager.CreateVisitor(request.LinkId,
                                                                 request.IPAddress,
                                                                 request.UserAgent,
                                                                 request.OSInfo,
                                                                 request.DeviceInfo,
                                                                 request.BrowserInfo);

            if (visitor == null)
            {
                return(BadRequest());
            }

            return(CreatedAtAction(nameof(GetById), new { id = visitor.Id }, null));
        }
Exemplo n.º 23
0
        public ActionResult Create(int id = 0)
        {
            Visitor visitor = new Visitor();

            if (id > 0)
            {
                visitor = visitorRepository.GetVisitorById(id);
            }
            VisitorModel visitorModel = new VisitorModel
            {
                ID      = visitor.ID,
                Comment = visitor.Comment,
                vName   = visitor.vName
            };

            return(View(visitorModel));
        }
Exemplo n.º 24
0
        public async Task VisitArticleAsync(string id, string remoteIp, string userAgent)
        {
            using var activity = traceActivityDecorator.StartActivity();

            var model = new VisitorModel
            {
                Date      = DateTime.Now,
                RemoteIp  = remoteIp,
                Article   = id,
                UserAgent = userAgent
            };
            await visitorRepository.InsertAsync(model);

            await cache.RemoveSaveAsync(CacheKeys.AllVisitors.Name);

            await cache.RemoveSaveAsync(CacheKeys.VisitorsByArticleId.Name(id));
        }
Exemplo n.º 25
0
        public List <VisitorModel> GetAllVisitor()
        {
            List <VisitorModel> visitorlist = new List <VisitorModel>();

            using (SqlConnection cn = new SqlConnection(cns))
            {
                using (SqlCommand cmd = new SqlCommand("getallvisitor", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    try
                    {
                        cn.Open();
                        using (SqlDataReader dr = cmd.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                VisitorModel vm = new VisitorModel();
                                vm.Visitor_Id     = (int)dr["visitor_id"];
                                vm.VisitorName    = dr["visitor_name"].ToString();
                                vm.Visitor_Cellno = dr["visitor_cell"].ToString();
                                vm.Age            = (int)dr["age"];
                                vm.Gender         = dr["gender"].ToString();
                                vm.Address        = dr["address"].ToString();
                                vm.Relation       = dr["relation"].ToString();
                                vm.MemberName     = dr["member_name"].ToString();
                                vm.Block          = dr["block"].ToString();
                                vm.Flatno         = (int)dr["flat_no"];
                                vm.In_Time        = dr["date_time_in"].ToString();
                                vm.Out_Time       = dr["date_time_out"].ToString();
                                visitorlist.Add(vm);
                            }
                        }
                    }
                    catch (SqlException ex) { throw ex; }
                    finally
                    {
                        if (cn.State == ConnectionState.Open)
                        {
                            cn.Close();
                        }
                    }
                }
            }
            return(visitorlist);
        }
Exemplo n.º 26
0
        // GET: Visitor/Visitor
        public ActionResult Index(int?visitorID = 0)
        {
            VisitorModel        model       = new VisitorModel();
            List <VisitorModel> visitorList = new List <VisitorModel>();

            model.GroupIdentifier = "Group " + DateTime.Now.ToString("dd-MMMM-yyyy hh:mm");

            model.VisitorDate      = DateTime.Now.Date.ToString();
            model.FromHoursMinutes = DateTime.Now.ToString("hh:mm tt");
            model.ToHoursMinutes   = DateTime.Now.ToString("hh:mm tt");

            if (visitorID.Value > 0)
            {
                visitor.VisitorID = visitorID.Value;
                actionResult      = visitorAction.Visitor_Load(visitor);
                if (actionResult.IsSuccess && actionResult.dtResult.Rows.Count > 0)
                {
                    DataRow row = actionResult.dtResult.Rows[0];
                    model.VisitorID        = row["VisitorID"] != DBNull.Value ? Convert.ToInt32(row["VisitorID"]) : 0;
                    model.VisitorName      = row["VisitorName"] != DBNull.Value ? row["VisitorName"].ToString() : "";
                    model.Description      = row["Description"] != DBNull.Value ? row["Description"].ToString() : "";
                    model.FromHoursMinutes = row["FromHoursMinutes"] != DBNull.Value ? row["FromHoursMinutes"].ToString() : "";
                    model.ToHoursMinutes   = row["ToHoursMinutes"] != DBNull.Value ? row["ToHoursMinutes"].ToString() : "";
                    model.VisitorDate      = row["VisitorDate"] != DBNull.Value ? row["VisitorDate"].ToString() : "";
                    model.GroupIdentifier  = row["GroupIdentifier"] != DBNull.Value ? row["GroupIdentifier"].ToString() : "Group " + DateTime.Now.ToString("dd-MMMM-yyyy hh:mm");
                }
            }
            actionResult = visitorAction.Visitor_Filter(visitor);
            if (actionResult.IsSuccess && actionResult.dtResult.Rows.Count > 0)
            {
                visitorList = (from DataRow row in actionResult.dtResult.Rows
                               select new VisitorModel
                {
                    VisitorID = row["VisitorID"] != DBNull.Value ? Convert.ToInt32(row["VisitorID"]) : 0,
                    VisitorName = row["VisitorName"] != DBNull.Value ? row["VisitorName"].ToString() : "",
                    Description = row["Description"] != DBNull.Value ? row["Description"].ToString() : "",
                    FromHoursMinutes = row["FromHoursMinutes"] != DBNull.Value ? row["FromHoursMinutes"].ToString() : "",
                    ToHoursMinutes = row["ToHoursMinutes"] != DBNull.Value ? row["ToHoursMinutes"].ToString() : "",
                    VisitorDate = row["VisitorDate"] != DBNull.Value ? row["VisitorDate"].ToString() : "",
                    GroupIdentifier = row["GroupIdentifier"] != DBNull.Value ? row["GroupIdentifier"].ToString() : "Group " + DateTime.Now.ToString("dd-MMMM-yyyy hh:mm")
                }).ToList();
            }
            model.VisitorList = visitorList;
            return(View(model));
        }
Exemplo n.º 27
0
        public async Task <int> AddVisitor(VisitorModel visitorModel)
        {
            var visitor = new Visitor()
            {
                Name          = visitorModel.Name,
                SecondName    = visitorModel.SecondName,
                Patronymic    = visitorModel.Patronymic,
                RoomId        = visitorModel.RoomId,
                ArrivalDate   = visitorModel.ArrivalDate,
                DepartureDate = visitorModel.DepartureDate,
                TotalCost     = visitorModel.TotalCost
            };
            await _hotelContext.Visitors.AddAsync(visitor);

            await _hotelContext.SaveChangesAsync();

            return(visitor.VisitorId);
        }
Exemplo n.º 28
0
        public HttpResponseMessage Post(VisitorModel entity)
        {
            if (ModelState.IsValid)
            {
                using (var db = new vmsDBContext())
                {
                    Visitors vstr = new Visitors();
                    vstr.Name        = entity.Name;
                    vstr.Guests      = entity.Guests;
                    vstr.Email       = entity.Email;
                    vstr.Phone       = entity.Phone;
                    vstr.IdCard      = entity.IdCard;
                    vstr.Vehicle     = entity.Vehicle;
                    vstr.VehicleNu   = entity.VehicleNu;
                    vstr.Color       = entity.Color;
                    vstr.ParkineZone = entity.ParkineZone;
                    vstr.Building    = entity.Building;
                    vstr.MeeTTo      = entity.MeeTTo;
                    vstr.TokenNo     = entity.TokenNo;
                    vstr.EntryDate   = DateTime.Now;
                    db.Visitors.Add(vstr);
                    db.SaveChanges();

                    //db.Entry(vstr).GetDatabaseValues();

                    InOuts inout = new InOuts();
                    inout.VisitorID = vstr.VisitorID;
                    inout.InTime    = entity.InTime;
                    inout.Status    = "Security Checkin";
                    inout.EntryDate = DateTime.Now;
                    db.InOuts.Add(inout);
                    db.SaveChanges();
                }

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, new { entity });
                return(response);
            }
            else
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
        }
Exemplo n.º 29
0
        /// <summary>
        /// Изменяет запись, добавляя информацию о выезде
        /// </summary>
        /// <returns>Возвращает сумму, которую надо заплатить(в рублях)</returns>
        public async Task <int> DepartureAsync(Guid idVisitor, VisitorModel model)
        {
            if (model == null)
            {
                throw new NullReferenceException($"Ссылка на модель указывает на null.");
            }

            var resultVisitor = Visitors.SingleOrDefault(x => x.Id == idVisitor);

            if (resultVisitor == null)
            {
                throw new NullReferenceException($"Записи с таким id:{idVisitor} нету.");
            }
            if (resultVisitor.ArrivalDate > model.Date)
            {
                throw new ArgumentException($"Дата выезда({model.Date}) меньше чем дата въезда({resultVisitor.ArrivalDate}).");
            }

            if (resultVisitor.Room.IsFree)
            {
                throw new ArgumentException($"Комната свободна, и оттуда некому пока выезжать.");
            }

            resultVisitor.DateOfDeparture = model.Date;

            //Освобождаем комнату
            resultVisitor.Room.IsFree = true;

            //Данные необходимые для подсчёта
            var days         = resultVisitor.DateOfDeparture.DayOfYear - resultVisitor.ArrivalDate.DayOfYear;
            var peopleCount  = resultVisitor.Room.MaxCount;
            var priceForType = _prices[resultVisitor.Room.RoomOptionId];

            //Формула для подсчёта сцены(почти произвольная)
            var resultPrice = peopleCount * priceForType + days * priceForType;

            //Записывается в запись итоговая цена
            resultVisitor.Price = resultPrice;
            await _context.SaveChangesAsync();

            return(resultPrice);
        }
        public async Task <VisitorModel> Register(VisitorModel visitorModel)
        {
            _loggingService.Log($"Request has been recieved at {ServiceName} ");
            try
            {
                var id       = Guid.NewGuid();
                var metadata = new FileMetadata <Guid>
                {
                    ID          = id,
                    Name        = visitorModel.Name + id,
                    ContentType = ".jpeg"
                };
                MemoryStream stream = new MemoryStream(Convert.FromBase64String(visitorModel.Image));
                var          status = await _storageAdaper.Upload(stream, metadata);

                if (status.StatusCode != HttpStatusCode.Created && status.StatusCode != HttpStatusCode.OK)
                {
                    throw new OperationCanceledException($"Could not store file into CDN,respnse is  {status.Error?.Message}");
                }
                _loggingService.Log($"File has been uploaded into CDN with id {status.FullyQualifiedPublicId}");

                var visitor = visitorModel.ToDataModel();
                visitor.UpdatedOn   = DateTime.UtcNow;
                visitor.StrorageUrl = status.SecureUri.ToString();
                visitor.ID          = id;
                var res = await _registrationDataService.Register(visitor);

                if (!res)
                {
                    throw new Exception("There was exception happend in the  DB layer");
                }

                visitorModel.BarCode = GenerateQrCode(id.ToString());
                return(visitorModel);
            }
            catch (Exception ex)
            {
                _loggingService.Log(ex);
                throw new OperationCanceledException();
            }
        }