/// <summary> /// Uploads prepare. /// 此时会把文件记录到临时表,DFS为空,reversion从file表中获取,该文件ID不代表在File中的ID /// </summary> /// <returns></returns> public JsonResult UploadPrepare(UploadPrepareModel model) { //FileName OauthTokenPair pair = unitOfWork.TokenReposity.GetTokenPair(model.oauth_token); NetDiskUser user = unitOfWork.UserRepositiry.dbSet.SingleOrDefault(u => u.UserId == pair.UserId); db.NetdiskUsers.Attach(user); FileUncomplete fileUncomplete = new FileUncomplete { FileName = model.FileName.GetFileName(), FilePath = model.FileName.GetFilePath(), FileSize = model.FileSize, Hash = model.Hash, IsCompleted = false, Owner = user }; UploadPrepareViewModel viewmodel = new UploadPrepareViewModel(); //以该hash的的相同路径的最新版本作为当前版本 File thisVersion = db.Files.Where(f => f.FileName == fileUncomplete.FileName && f.FilePath == fileUncomplete.FilePath && f.Hash == model.Hash && !f.IsDeleted).OrderByDescending(f => f.Id).FirstOrDefault(); if (thisVersion != null) { viewmodel.IsExitsRemote = true; } else { viewmodel.IsExitsRemote = false; } if (viewmodel.IsExitsRemote) { viewmodel.RemoteId = thisVersion.Id; viewmodel.RemoteHash = thisVersion.Hash; viewmodel.RemoteReversion = thisVersion.Reversion; } else { try { db.FileUncomplete.Add(fileUncomplete); db.SaveChanges(); viewmodel.ret = 0; viewmodel.Id = fileUncomplete.Id; viewmodel.hash = fileUncomplete.Hash; viewmodel.DFSPath = "\\" + fileUncomplete.Hash; } catch (System.Exception ex) { viewmodel.ret = -1; viewmodel.msg = "save file to FileUncomplete failed!err info:" + ex.Message; } } return(Json(viewmodel, JsonRequestBehavior.AllowGet)); }
public void Save() { context.SaveChanges(); }