예제 #1
0
        public async Task <IChangeStatusModel> AssignsMembersGroup(INewDayAssignModel model)
        {
            IChangeStatusModel moveToStatusResultModel = new ChangeStatusModel();

            DayAssign dayAssign = await CreateOrGetDayAssign(model);

            try
            {
                if (model.IsUnassignedAll)
                {
                    await jobStatusService.Pending(model.DayAssignId.Value, dayAssign.StatusId);
                }
                else if (dayAssign.StatusId != JobStatus.Assigned && model.TeamLeadId.HasValue)
                {
                    await jobStatusService.Assigned(dayAssign.Id, dayAssign.StatusId);
                }
                else if (dayAssign.StatusId != JobStatus.Opened && !model.TeamLeadId.HasValue)
                {
                    await jobStatusService.Opened(dayAssign.Id, dayAssign.StatusId);
                }

                model.Id = dayAssign.Id;
                await messageBus.Publish(model.Map <ChangeDayAssignMembersComand>());

                moveToStatusResultModel.IsSuccessful = true;
            }
            catch (NotImplementedException)
            {
                moveToStatusResultModel.IsSuccessful = false;
            }

            moveToStatusResultModel.DayAssignId = dayAssign.Id;
            return(moveToStatusResultModel);
        }
예제 #2
0
        public async Task <BaseResult> ChangeLockStatusAsync(ChangeStatusModel model)
        {
            var result = new BaseResult();
            //判断状态是否发生变化,没有则修改,有则返回状态已变化无法更改状态的提示
            var isLock = await _repository.GetLockStatusByIdAsync(model.Id);

            if (isLock == !model.Status)
            {
                var count = await _repository.ChangeLockStatusByIdAsync(model.Id, model.Status);

                if (count > 0)
                {
                    result.ResultCode = ResultCodeAddMsgKeys.CommonObjectSuccessCode;
                    result.ResultMsg  = ResultCodeAddMsgKeys.CommonObjectSuccessMsg;
                }
                else
                {
                    result.ResultCode = ResultCodeAddMsgKeys.CommonExceptionCode;
                    result.ResultMsg  = ResultCodeAddMsgKeys.CommonExceptionMsg;
                }
            }
            else
            {
                result.ResultCode = ResultCodeAddMsgKeys.CommonDataStatusChangeCode;
                result.ResultMsg  = ResultCodeAddMsgKeys.CommonDataStatusChangeMsg;
            }
            return(result);
        }
예제 #3
0
        public BaseResult ChangeLockStatus(ChangeStatusModel model)
        {
            var result = new BaseResult();
            var isLock = _repository.GetLockStatusById(model.Id);

            if (isLock != model.Status)
            {
                var count = _repository.ChangeLockStatusById(model.Id, model.Status);
                if (count > 0)
                {
                    result.ResultCode = ResultCodeAddMsgKey.CommonObjectSuccessCode;
                    result.ResultMsg  = ResultCodeAddMsgKey.CommonObjectSuccessMsg;
                }
                else
                {
                    result.ResultCode = ResultCodeAddMsgKey.CommonExceptionCode;
                    result.ResultMsg  = ResultCodeAddMsgKey.CommonExceptionMsg;
                }
            }
            else
            {
                result.ResultCode = ResultCodeAddMsgKey.CommonDataStatusChangeCode;
                result.ResultMsg  = ResultCodeAddMsgKey.CommonDataStatusChangeMsg;
            }
            return(result);
        }
예제 #4
0
        public async Task <IActionResult> TurnOff(int id)
        {
            var powerSwitch = jsonDatabaseService.PowerSwitches.FirstOrDefault(ps => ps.ID == id);

            if (powerSwitch == null)
            {
                logger.LogError($"PowerSwitchAPI.TurnOff: No power switch found with ID '{id}'.");
                return(Ok(new ChangeStatusModel {
                    IsOn = false, Result = false
                }));
            }

            ChangeStatusModel model = new ChangeStatusModel();

            try
            {
                var         arguments   = new ActionExecutionArguments(powerSwitch, new Device[] { powerSwitch }, serviceProvider);
                StateAction stateAction = new StateAction {
                    Devices = new int[] { powerSwitch.ID }, State = Entities.Enums.DeviceState.Off
                };
                await stateAction.Execute(arguments);

                logger.LogInformation($"PowerSwitchAPI.TurnOff: Successfully turned power switch OFF with ID '{id}'.");

                model.IsOn   = false;
                model.Result = true;
            }
            catch
            {
                logger.LogError($"PowerSwitchAPI.TurnOff: Failed to turn power switch OFF with ID '{id}'.");
            }

            return(Ok(model));
        }
예제 #5
0
        public async void Can_change_status_to_customer(ChangeStatusModel model, Customer customer)
        {
            var customerRepoMock = Fixture.Freeze <Mock <ICustomerRepository> > ();

            customerRepoMock.Setup(o => o.GetByIdAsync(model.CustomerId)).ReturnsAsync(customer);
            var sut = GetSut();

            var result = await sut.UpdateStatus(model) as OkResult;

            Assert.IsType <OkResult> (result);
            Assert.Equal(model.NewStatus, customer.Status);
            customerRepoMock.Verify(o => o.SaveChangesAsync());
        }
예제 #6
0
        public ActionResult <IReturnModel <bool> > ChangeStatusFile([FromBody] ChangeStatusModel filter)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }

            #region Declares

            IReturnModel <bool> rtn = new ReturnModel <bool>(_logger);

            #endregion Declares

            #region Hash Control

            if (!filter.HashControl(_configuration["AppSettings:HashSecureKeys:UserCloudManager:Fm:ChangeStatusFile"]))
            {
                _logger.LogError("InvalidHash: " + filter.Hash);
                return(BadRequest(rtn.SendError(GlobalErrors.HashCodeInValid)));
            }

            #endregion Hash Control

            #region Action Body

            try
            {
                int userId  = Tools.GetTokenNameClaim(HttpContext);
                int tokenId = Tools.GetTokenIdClaim(HttpContext);
                ServiceParamsWithIdentifier <ChangeStatusModel> serviceFilterModel = new ServiceParamsWithIdentifier <ChangeStatusModel>(filter, userId, tokenId);
                IReturnModel <bool> serviceAction = _service.ChangeStatusFile(serviceFilterModel);
                if (serviceAction.Error.Status)
                {
                    rtn.Error = serviceAction.Error;
                }
                else
                {
                    rtn.Result = serviceAction.Result;
                }
            }
            catch (Exception ex)
            {
                rtn = rtn.SendError(GlobalErrors.TechnicalError, ex);
            }

            #endregion Action Body

            return(Ok(rtn));
        }
예제 #7
0
        public async Task <IActionResult> UpdateStatus(ChangeStatusModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var customer = await _customerRepository.GetByIdAsync(model.CustomerId);

            customer.Status = model.NewStatus;

            await _customerRepository.SaveChangesAsync();

            return(Ok());
        }
예제 #8
0
        public IActionResult ChangeStatus([FromBody] ChangeStatusModel model)
        {
            Request.Headers.TryGetValue("Authorization", out var token);
            string email = _accountManager.GetEmailByToken(token);

            try
            {
                _projectManager.ChangeStatus(model.ProjectId, email, model.StatusId);
                return(Ok("Success!!!"));
            }
            catch (Exception)
            {
                return(Conflict("Decline!!!"));
            }
        }
예제 #9
0
        public string ChangeDisplayStatus([FromForm] ChangeStatusModel item)
        {
            var result = new BaseResult();
            ManagerLockStatusModelValidation validationRules = new ManagerLockStatusModelValidation();
            ValidationResult results = validationRules.Validate(item);

            if (results.IsValid)
            {
                // result = _service.ChangeDisplayStatus(item);
            }
            else
            {
                result.ResultCode = ResultCodeAddMsgKeys.CommonModelStateInvalidCode;
                result.ResultMsg  = results.ToString("||");
            }
            return(JsonHelper.ObjectToJSON(result));
        }
예제 #10
0
        public async Task <IActionResult> ChangeStatus(ChangeStatusModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                await _roomService.SetStatus(model.RoomId, model.Status);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }
예제 #11
0
        public ServiceResult ChangeStatus(ChangeStatusModel model)
        {
            var result = new ServiceResult {
                IsSuccess = false
            };
            var carParkSpace = context.CarParkingSpaces.Find(model.CarParkSpaceId);

            if (carParkSpace != null)
            {
                if (carParkSpace.Status)
                {
                    result.Message = "Park Yeri doludur.";
                    return(result);
                }
                carParkSpace.Status = true;
            }
            else
            {
                return(result);
            }
            var customer = context.Customers.FirstOrDefault(x => x.Id == model.CustomerId && !x.Deleted);

            if (customer != null)
            {
                if (customer.CarParkingSpaceId != null)
                {
                    result.Message = "Müşteri farklı bir park yerinde kayıtlıdır.";
                    return(result);
                }
                customer.CarParkingSpaceId = model.CarParkSpaceId;
                customer.EntryDate         = DateTime.Now;
            }
            else
            {
                return(result);
            }
            context.SaveChanges();
            result.IsSuccess = true;
            return(result);
        }
예제 #12
0
        public async Task <string> ChangeStatusAsync([FromForm] ChangeStatusModel item)
        {
            var result = new BooleanResult();

            if (ModelState.IsValid)
            {
                var model = await _service.GetByIdAsync(item.Id);

                if (model == null)
                {
                    result.Data = false;
                }
                else
                {
                    int[] ids = { item.Id };
                    if (item.Status)
                    {
                        await _scheduleCenter.AddJobAsync(model.Name, model.Group, model.ClassName, model.Assembly, model.Cron);

                        result = await _service.UpdateStatusByIdsAsync(ids, (int)TaskInfoStatus.Running);
                    }
                    else
                    {
                        await _scheduleCenter.StopJobAsync(model.Name, model.Group);

                        result = await _service.UpdateStatusByIdsAsync(ids, (int)TaskInfoStatus.Stopped);
                    }
                }
            }
            else
            {
                result.ResultCode = ResultCodeAddMsgKeys.CommonModelStateInvalidCode;
                result.ResultMsg  = ToErrorString(ModelState, "||");
                result.Data       = false;
            }
            return(JsonHelper.ObjectToJSON(result));
        }
예제 #13
0
        public JsonResult ChangeItemStatus(ChangeStatusModel model)
        {
            var    resultMessage = string.Empty;
            Entity item          = null;

            if (!ModelState.IsValid)
            {
                resultMessage = "İşlem sırasında hata oluştu!";
            }
            else
            {
                try
                {
                    item = GetEntity(model);
                    if (item != null)
                    {
                        switch (model.DataType)
                        {
                        case "User":
                            item.StatusID       = (byte)(model.Status ? 1 : 0);
                            item.UserModifiedID = Client.CurrentUser.ID;
                            Client.Services.API.Visa.SaveUser((User)item);
                            break;

                        default:
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    resultMessage = "İşlem sırasında hata oluştu!";
                }
            }

            return(Json(new { message = resultMessage }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ChangeStatus(ChangeStatusModel model)
        {
            var data = parkingSpaceService.ChangeStatus(model);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
예제 #15
0
 public ActionResult TaskStatus(ChangeStatusModel taskAssigned)
 {
     ChangeStatusModel taskToChangeStatus = new ChangeStatusModel();
         string currentUserId = User.Identity.GetUserId().ToString();
         var user = db.Users.Find(currentUserId);
         Issue objTask = db.Issues.Find(taskAssigned.id);
         List<Status> list_Status = db.Status.Select(s => s).ToList();
         string statusType = db.Status.Find(objTask.StatusId).StatusType.ToString().ToLower();
         taskToChangeStatus.StatusId = objTask.StatusId;
         taskToChangeStatus.UpdatedBy = objTask.UpdatedBy;
         taskToChangeStatus.UpdatedOn = objTask.UpdatedOn;
         taskToChangeStatus.ClientId = objTask.ClientId;
         taskToChangeStatus.ProductName = objTask.Product.ProductName;
         taskToChangeStatus.AssignedTo = objTask.ApplicationUser.FirstName + " " + objTask.ApplicationUser.LastName;
         taskToChangeStatus.StatusType = objTask.Status.StatusType;
         taskToChangeStatus.PriorityId = objTask.PriorityId;
         taskToChangeStatus.IssueCode = objTask.IssueCode;
         taskToChangeStatus.TaskTag = objTask.Tag.TagValue;
         taskToChangeStatus.CreatedBy = objTask.CreatedBy;
         taskToChangeStatus.PrevDescription = DBHandler.removeStringFromDescription(objTask.Description);
         taskToChangeStatus.Description = "";
         taskToChangeStatus.ApplicationUserId = objTask.ApplicationUserId;
         taskToChangeStatus.CreatedOn = objTask.CreatedOn;
         taskToChangeStatus.UpdatedBy = objTask.UpdatedBy;
         taskToChangeStatus.UpdatedOn = objTask.UpdatedOn;
         objTask.UploadedFileName = taskAssigned.UploadedFileName;
         if (ModelState.IsValid)
         {
             int statusId;
             statusId = list_Status.First(s => s.StatusType.ToLower() == AppStatus.CLOSED).StatusId;
             objTask.UpdatedBy = currentUserId;
             objTask.UpdatedOn = DateTime.Now;
             string hrLine = "_hrLine_";
             string divStartRed = "_dsr_";
             string nextLIne = "_newline_";
             string boldStart = "_bs_";
             string boldEnd = "_be_";
             string divStart = "_ds_";
             string divEnd = "_de_";
             string dvStart = "_dstart_";
             string newkDescription = System.Net.WebUtility.HtmlDecode(String.IsNullOrEmpty(taskAssigned.Description) ? "" : taskAssigned.Description.ToString());
             string preDescription = objTask.Description;
             int? statusID = 0;
             int issueID = 0;
             try
             {
                 string body;
                 string mailSubject = string.Empty;
                 string messageBody = string.Empty;
                 string filepath = Server.MapPath("~/App_Data/EmailTemplates/TaskCreationEmail.html");
                 using (var sr = new StreamReader(filepath))
                 {
                     body = sr.ReadToEnd();
                 }
                 var pagelink = Url.Action("Detail", "Issue", new { id = issueID }, protocol: Request.Url.Scheme);
                 string anchorHtml = "<a href=\"" + pagelink + "\">Click here to close status</a>";
                 var uri = new Uri(pagelink);
                 string logoPath = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port + "/Images/pronetemaillogo.png";
                 string imageHtml = "<img height='55' width='112' src='" + logoPath + "'/>";
                 var assigendUser = db.Users.Find(objTask.ApplicationUserId);
                 string userName = DataHelper.ToPascalConvention(assigendUser.FullName);
                 string description = System.Net.WebUtility.HtmlDecode(newkDescription);
                 string sender = ConfigurationManager.AppSettings["SenderEmailAddress"].ToString();
                 if (taskAssigned.isClosed == "on")
                 {
                     objTask.Description = divStart + divStartRed + hrLine + dvStart + "Task " + objTask.IssueCode + " is closed by " + DataHelper.ToPascalConvention(user.FullName) + "." + divEnd + hrLine + divEnd + boldStart + "Commented By:" + boldEnd + " " + DataHelper.ToPascalConvention(db.Users.Where(u => u.Email == User.Identity.Name).First().FullName) + nextLIne + boldStart + "Date:" + boldEnd + " " + objTask.UpdatedOn.ToString() + nextLIne + boldStart + "Comments:" + boldEnd + nextLIne + newkDescription + divEnd + preDescription;
                     objTask.StatusId = statusId;
                     db.Issues.Add(objTask);
                     db.SaveChanges();
                     var all_issues = db.Issues.ToList();
                     var allFilteredIssues = (from p in all_issues
                                              group p by objTask.IssueCode into g
                                              select g.OrderBy(p => p.UpdatedOn).Last()).ToList();
                     statusID = allFilteredIssues[0].StatusId;
                     issueID = allFilteredIssues[0].IssueId;
                     ////Email Sending------
                      mailSubject = objTask.IssueCode + " has been closed";
                     // body = System.IO.File.ReadAllText(filepath);
                      messageBody = string.Format(body.ToString(), mailSubject, objTask.IssueCode, objTask.Tag.TagValue, objTask.Client.Name, objTask.Priority.PriorityType, objTask.Product.ProductName, objTask.Status.StatusType, (user.FirstName + " " + user.LastName).ToString(), objTask.UpdatedOn, description, anchorHtml, DateTime.Now.Year, imageHtml, "", userName, "Assigned To", "'border: solid 1px black;'");
                 }
                 else
                 {
                     mailSubject = objTask.IssueCode + " has been updated";
                     messageBody = string.Format(body.ToString(), mailSubject, objTask.IssueCode, objTask.Tag.TagValue, objTask.Client.Name, objTask.Priority.PriorityType, objTask.Product.ProductName, objTask.Status.StatusType, (user.FirstName + " " + user.LastName).ToString(), objTask.UpdatedOn, description, anchorHtml, DateTime.Now.Year, imageHtml, "", userName, "Assigned To", "'border: solid 1px black;'");
                     //
                     objTask.Description = divStart + dvStart + hrLine + dvStart + "Task " + objTask.IssueCode + "'s comments are updated by " + user.FirstName + " " + user.LastName + "." + divEnd + hrLine + divEnd + boldStart + "Commented By:" + boldEnd + " " + db.Users.Where(u => u.Email == User.Identity.Name).First().FirstName + " " + db.Users.Where(u => u.Email == User.Identity.Name).First().LastName + nextLIne + boldStart + "Date:" + boldEnd + " " + objTask.UpdatedOn.ToString() + nextLIne + boldStart + "Comments:" + boldEnd + nextLIne + newkDescription + divEnd + preDescription;
                     db.Entry(objTask).State = EntityState.Modified;
                     db.SaveChanges();
                     statusID = objTask.StatusId;
                     issueID = objTask.IssueId;
                 }
                 MailManager.sendEmailToManagerRoles(sender, messageBody, mailSubject, "changeStatus", objTask.ApplicationUserId, objTask.UploadedFileName);
                 return RedirectToAction("Index", new { id = issueID, statusId = statusID });
             }
             catch (Exception)
             {
                 return RedirectToAction("Index", new { id = issueID, statusId = statusID });
             }
             ////Email Sending End-----
         }
         return View(taskToChangeStatus);
 }
예제 #16
0
 public ActionResult TaskStatus(int id = 0)
 {
     string currentUserId = User.Identity.GetUserId();
     var all_tasks = (from i in (db.Issues) select i).ToList();
     var task = (from p in all_tasks
                 group p by p.IssueCode into g
                 select g.OrderByDescending(p => p.UpdatedOn).First()).ToList();
     if ((User.IsInRole(AppRoles.ADMINISTRATOR)) || (User.IsInRole(AppRoles.MANAGER)) || (User.IsInRole(AppRoles.SUPERUSER)))
     {
         var taskModel = (from t in task.Where(i => i.Status.StatusType.ToLower() != AppStatus.CLOSED && i.Status.StatusType.ToLower() != AppStatus.UNASSIGNED) select (new { IssueId = t.IssueId, IssueCode = t.IssueCode })).ToList();
         ViewBag.IssueId = new SelectList(taskModel, "IssueId", "IssueCode", id);
     }
     else
     {
         var all_assignedTasks = db.AssignedTasks.Where(at => at.ApplicationUserId == currentUserId).ToList();
         var assignedTask = (from at in all_assignedTasks select new AssignedTask { ApplicationUserId = at.ApplicationUserId, IssueId = at.IssueId }).ToList();
         var taskModel = (from t in task.Where(i => i.Status.StatusType.ToLower() != AppStatus.CLOSED && i.Status.StatusType.ToLower() != AppStatus.UNASSIGNED) join at in assignedTask on t.IssueId equals at.IssueId select (new { IssueId = t.IssueId, IssueCode = t.IssueCode })).ToList();
         ViewBag.IssueId = new SelectList(taskModel, "IssueId", "IssueCode", id);
     }
     var status = new List<Status>();
     if (User.IsInRole(AppRoles.MANAGER) || User.IsInRole(AppRoles.SUPERUSER))
     {
         status = db.Status.Where(t => t.StatusType.ToLower() == AppStatus.CLOSED || t.StatusType.ToLower() == AppStatus.REASSIGNEDBYTUSER || t.StatusType.ToLower() == AppStatus.REASSIGNEDBYMANAGER || t.StatusType.ToLower() == AppStatus.REASSIGNEDBYSUPERUSER).ToList();
         ViewBag.StatusId = new SelectList(status, "StatusId", "StatusType");
     }
     else
     {
         status = db.Status.Where(t => t.StatusType.ToLower() == AppStatus.CLOSED).ToList();
         ViewBag.StatusId = new SelectList(status, "StatusId", "StatusType", 7);
     }
     if (id > 0)
     {
         ChangeStatusModel taskToChangeStatus = new ChangeStatusModel();
         Issue assignedtask = db.Issues.Find(id);
         if (assignedtask == null)
         {
             return HttpNotFound();
         }
         taskToChangeStatus.AssignedTo = assignedtask.ApplicationUser.FirstName + " " + assignedtask.ApplicationUser.LastName;
         taskToChangeStatus.ClientName = assignedtask.Client.Name;
         taskToChangeStatus.id = assignedtask.IssueId;
         taskToChangeStatus.ProductName = assignedtask.Product.ProductName;
         taskToChangeStatus.PriorityType = assignedtask.Priority.PriorityType;
         taskToChangeStatus.Tag = assignedtask.Tag.TagValue;
         taskToChangeStatus.TaskTag = assignedtask.Tag.TagValue;
         taskToChangeStatus.StatusType = assignedtask.Status.StatusType;
         taskToChangeStatus.IssueId = assignedtask.IssueId;
         taskToChangeStatus.ClientId = assignedtask.ClientId;
         taskToChangeStatus.ProductId = assignedtask.ProductId;
         taskToChangeStatus.PriorityId = assignedtask.PriorityId;
         taskToChangeStatus.IssueTagId = assignedtask.TagId;
         taskToChangeStatus.IssueCode = assignedtask.IssueCode;
         taskToChangeStatus.PrevDescription = DBHandler.removeStringFromDescription(assignedtask.Description);
         taskToChangeStatus.Description = "";
         taskToChangeStatus.ApplicationUserId = assignedtask.ApplicationUserId;
         taskToChangeStatus.CreatedBy = assignedtask.CreatedBy;
         taskToChangeStatus.UpdatedBy = assignedtask.UpdatedBy;
         taskToChangeStatus.CreatedOn = assignedtask.CreatedOn;
         taskToChangeStatus.UpdatedOn = assignedtask.UpdatedOn;
         taskToChangeStatus.UploadedFileName = assignedtask.UploadedFileName;
         string[] filesUploaded = string.IsNullOrEmpty(assignedtask.UploadedFileName) ? null : assignedtask.UploadedFileName.Contains('$') ? assignedtask.UploadedFileName.Split('$') : null;
         List<FilesUploaded> objFilesUploaded = new List<FilesUploaded>();
         if (filesUploaded != null)
         {
             foreach (var item in filesUploaded)
             {
                 string fileUploaded = string.Empty;
                 string fileUserId = string.Empty;
                 string fileName = DataHelper.getFileName(item, out fileUserId, out fileUploaded);
                 objFilesUploaded.Add(new FilesUploaded { name = fileName });
             }
         }
         else if (!string.IsNullOrEmpty(assignedtask.UploadedFileName))
         {
             string fileUploaded = string.Empty;
             string fileUserId = string.Empty;
             string fileName = DataHelper.getFileName(assignedtask.UploadedFileName, out fileUserId, out fileUploaded);
             objFilesUploaded.Add(new FilesUploaded { name = fileName });
         }
         if (objFilesUploaded.Count() > 0)
         {
             ViewData["UploadedFiles"] = objFilesUploaded;
         }
         return View(taskToChangeStatus);
     }
     return View();
 }
예제 #17
0
        public IActionResult ChangeStatus([FromBody] ChangeStatusModel model)
        {
            var view = service.ChangeStatus(model);

            return(Ok(view));
        }
예제 #18
0
 public ChangeStatusView ChangeStatus(ChangeStatusModel model)
 {
     if (model.Status != model.ChangedStatus)
     {
         ChangeStatusView change;
         if (model.ChangedStatus == "Link")
         {
             var file = database.Files.Get(model.Id).Result;
             if (file != null)
             {
                 file.Status = database.Statuses.Get(x => x.Title == "Link").Result;
                 file.Link   = new Link()
                 {
                     Code = RandomService.Random()
                 };
                 // file.Link.Code =
                 change = new ChangeStatusView()
                 {
                     Name   = new string(file.Name),
                     Status = new string(file.Status.Title),
                     Link   = new string("http://localhost:50761/api/User/Download?link=" + file.Link.Code)
                 };
                 database.Save();
                 return(change);
             }
             else
             {
                 throw new Exception();
             }
         }
         else if (model.ChangedStatus == "Closed")
         {
             var file = database.Files.Get(model.Id).Result;
             if (file != null)
             {
                 file.Status    = database.Statuses.Get(x => x.Title == "Closed").Result;
                 file.Link.Code = "";
                 change         = new ChangeStatusView()
                 {
                     Name   = new string(file.Name),
                     Status = new string(file.Status.Title),
                 };
                 database.Save();
                 return(change);
             }
             else
             {
                 throw new Exception();
             }
         }
         else
         {
             throw new Exception();
         }
     }
     else
     {
         //todo :Ex!
         throw new Exception();
     }
 }